t-sql - procedura a łączenia tabel

t-sql - procedura a łączenia tabel
DM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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

PD
  • Rejestracja: dni
  • Ostatnio: dni
1

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

Kopiuj
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;
DM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

rzeczywiście, dzięki!

FI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 88
0

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.