Fórum Root.cz

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

Název: SQL - UPDATE SELECT, 3 tables
Přispěvatel: Sadd kdy 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:

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?

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 kdy 02. 11. 2014, 21:38:37
Nejak takto?


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 kdy 02. 11. 2014, 21:46:23
Děkuji :)
Název: Re:SQL - UPDATE SELECT, 3 tables
Přispěvatel: Ivan kdy 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 kdy 03. 11. 2014, 13:16:04
Právě MSSQL