t-sql - procedura a łączenia tabel

0

cześć, uczę się od niedawna sql-a, przerabiam procedury.
chciałbym napisać prostą procedurę, która obniża ceny artykułów.
problem pojawia się, gdy w warunkach łączę tabele:

create procedure [obnizka] @ile int, @gatunek varchar
as
update ksiazka set cena=cena+(cena*@ile*0.01) where gatunek.nazwa=@gatunek and ksiazka.id_gatunku=gatunek.id;

tabele:
gatunek: id, nazwa
ksiazka: id,nazwa,id_gatunku,cena

czy trzeba to wykonać jakimś podzapytaniem?
proszę o odpowiedź.

używam ms sql

1

musisz dorzucić sekcję FROM do zapytania, np.:

create procedure obnizka @ile int, @gatunek varchar
as
update ksiazka set cena=k.cena+(k.cena*@ile*0.01) from ksiazka k inner join gatunek g on (k.id_gatunku=g.id_gatunku) where g.nazwa=@gatunek;
0

rzeczywiście, dzięki!

0

Albo jeszcze wygodniej, wykorzystać alias dla tabeli i wtedy:

 UPDATE MojaTabela SET x= '' FROM dbo.Tabela AS MojaTabela.....

1 użytkowników online, w tym zalogowanych: 0, gości: 1