[SQL] Problem z zapytaniem


(Lysy1033) #1

Witam. Mam problem z zapytaniem SQL.

Mam 2 tabele:

faktury:

id(int), id_dostawca(int), kwota(float), zaplacona(bool)

oraz dostawca:

id(int), nazwa(varchar)

Ok. teraz potrzebuję zrobić takie zapytanie, żeby zwróciło taki wynik:

id_dostawca, nazwa, oraz suma kwot wszystkich niezaplaconych faktur danego dostawcy

id_dostawca, nazwa, oraz suma kwot wszystkich niezaplaconych faktur danego dostawcy

...


(Howks0) #2

Zobacz to

select faktury.id_dostawca, dostawca.nazwa, (select sum(kwota) from faktury where zaplacona=false) as niezaplacone from faktury, dostawca where faktury.id_dostawca=dostawca.id

(Lysy1033) #3
select faktury.id_dostawcy, dostawcy.nazwa, (select sum(kwota) from faktury where zaplacono=0 and faktury.id_dostawcy=dostawcy.id) as niezaplacone from faktury, dostawcy where faktury.id_dostawcy=dostawcy.id group by faktury.id_dostawcy

a więc mam takie zapytanie. i w zasadzie problem jest jeden. ze zawsze mi wyświetla pełną listę dostawców a chciałbym żeby pokazał tylko tych którzy maja niezapłacone faktury. wiecie jak to zrobić? oki zrobilem:

select faktury.id_dostawcy, dostawcy.nazwa, (select sum(kwota) from faktury where zaplacono=0 and faktury.id_dostawcy=dostawcy.id) as niezaplacone from faktury, dostawcy where faktury.id_dostawcy=dostawcy.id and faktury.zaplacono=0 group by faktury.id_dostawcy