Fórum Root.cz

Hlavní témata => Server => Téma založeno: Sadd 02. 11. 2014, 20:54:18

Název: SQL - UPDATE SELECT, 3 tables
Přispěvatel: Sadd 02. 11. 2014, 20:54:18
Zdravím,
 mám před sebou zajímavý problém(výzvu :D ).
3 Tabulky(obrazně):
Zakaznik - id_zakaznika, billance
Header - id_header,id_zakaznika
Product - id, value.
No k výzvě:
Jedním update-> Select dotazem, dopočítat billanci u zákazníka, pomocí spojení z Header a Productu.
Dostal jsem s k výpisu kde je suma hodnoty produktu a id faktury:
Kód: [Vybrat]
SELECT SUM(Product .value)as suma,Product .id_header as id_zakaznik FROM Product INNER JOIN Header on Product .id_header=Header .id_header GROUP BY id_product

 
Což mi ukáže tedy bilanci Zakaznika a jeho ID. Nicméně, jak to nejšikovněji napasovat do UPDATE?
Kód: [Vybrat]
UPDATE Zakaznik
SET Zakaznik.billance=
(
SELECT SUM(Product.value)as suma
FROM Product
INNER JOIN Zahlavi on Product .id_header=Header.id_header
)
FROM Zakaznik Inner Join Header on Header.id_zakaznika=Zakaznik.id_zakaznika;
Mi boužel nefunguje - nemůže, potřeboval bych to spárovat. Děkuji
Děkuji za čas :)
Název: Re:SQL - UPDATE SELECT, 3 tables
Přispěvatel: devnull 02. 11. 2014, 21:38:37
Nejak takto?

Kód: [Vybrat]
UPDATE Zakaznik
SET Zakaznik.billance=
(
SELECT SUM(Product.value)as suma
FROM Product
INNER JOIN Zahlavi on Product .id_header=Header.id_header
WHERE Heaser.id_zakaznik = Zakaznik.id_zakaznik
)
Název: Re:SQL - UPDATE SELECT, 3 tables
Přispěvatel: Sadd 02. 11. 2014, 21:46:23
Děkuji :)
Název: Re:SQL - UPDATE SELECT, 3 tables
Přispěvatel: Ivan 03. 11. 2014, 10:50:29
Tady je dulezity vedet o jakou databazi se jedna. Napr. Oracle a MSSQL podporuji tzv. update-able join, i kdyz kazda s trochu jinou syntaxi.
 
Název: Re:SQL - UPDATE SELECT, 3 tables
Přispěvatel: Sadd 03. 11. 2014, 13:16:04
Právě MSSQL