mam poniższy zestaw zapytań generujący mi tabelkę z wynikami;
$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";
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....