mam poniższy zestaw zapytań generujący mi tabelkę z wynikami,
wszystko jest dobrze z małym ale.... może zaistnieć taka sytuacja że w tabeli tab2 nie ma nazwiska które jest w tabeli xx wtedy jest pomijane, próbowałem na różne sposoby, FULL JOIN, RIGHT JOIN wszystko na nic. Znalazłem gdzieś podobny przypadek gdzie zastosowano dodatkowo UNION, ale u mnie znów klops....
$ksiega= "SELECT ksiega.masa AS masa, ksiega.cena AS cena, ksiega.zwrot AS zwrot, ksiega.waluta AS waluta, ksiega.przeznaczenie AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega UNION ALL SELECT ksiega.masa1 AS masa, ksiega.cena1 AS cena, ksiega.zwrot1 AS zwrot, ksiega.waluta1 AS waluta, ksiega.przeznaczenie1 AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega UNION ALL SELECT ksiega.masa2 AS masa, ksiega.cena2 AS cena, ksiega.zwrot2 AS zwrot, ksiega.waluta2 AS waluta, ksiega.przeznaczenie2 AS przeznaczenie, ksiega.id_book AS id_book FROM ksiega"; $ksiegabook= "SELECT imie_nazwisko, masa, cena, przeznaczenie, zwrot, case when waluta='%' && przeznaczenie='mama' then ((cena*masa)-((cena*masa)*zwrot/100)) when waluta='%' && przeznaczenie='siostra' then (-(cena*masa)*(zwrot/100)) when waluta='zł' && przeznaczenie='mama' then ((cena*masa)-(zwrot)) when waluta='zł' && przeznaczenie='siostra' then (-zwrot) else 0 end AS saldo FROM ($ksiega) AS tab1 LEFT JOIN book ON tab1.id_book=book.id_book "; $kasap= "SELECT imie_nazwisko, SUM(kwota) AS kwota from kasa GROUP BY imie_nazwisko"; $koniec= "SELECT tab2.imie_nazwisko AS kto, tab2.masa AS masa, (SUM(saldo)+COALESCE(xx.kwota,0)) AS saldo, SUM(kwota) AS kwota FROM ($ksiegabook) AS tab2 LEFT JOIN ($kasap) xx ON tab2.imie_nazwisko=xx.imie_nazwisko GROUP BY tab2.imie_nazwisko";