Mam listę produktów i muszę pobrać dane tych produktów a te z kolei rozrzucone są po różnych tabelach.
Tabele:
projekty:
- id_projekt,
- prefix,
- nazwa,
- puzytkowa,
- kubatura,
...
technologie:
- id_parametry,
- id_projekt,
....
kosztorysy:
- id_parametry,
- id_el_kosztorysowy,
- kwota,
- kwota_syst_gosp,
- kwota_materialy,
...
Tabela technologie zawiera nazwy technologii dla wszystkich projektów zawartych w tabeli projekty
natomiast tabela kosztorysy zawiera koszty tylko dla niektórych projektów.
Wszystko działa jeśli dla wybranych projektów są kosztorysy, jeśli ich nie ma warunek nie jest spełniony i zwraca pusty wynik.
Jak przebudować zapytanie by zwracało informacje o projektach a w przypadku gdy nie ma kosztorysu to pola kwota, kwota_syst_gosp i kwota_materialy mialy wartosc 0.
SELECT p.nazwa,p.prefix,p.puzytkowa, p.kubatura, SUM(ko.kwota), SUM(ko.kwota_syst_gosp), SUM(ko.kwota_materialy) FROM projekty AS p INNER JOIN technologie AS te USING(id_projekt) INNER JOIN kosztorysy AS ko ON ko.id_technologia ko.id_technologia = te.id_parametry WHERE hide=0 AND mtmstyl=1 AND prefix IN('proj_1','proj_2') AND ko.id_el_kosztorysowy IN(1,1000) GROUP BY p.nazwa,p.prefix,p.puzytkowa, p.kubatura ORDER BY nazwa DESC