może dziwnie to zabrzmi, ale mam zapytanie które kiedyś działało poprawnie, a od pewnego momentu zgłasza mi problem że występuje w nim nieznane pole [SALDO].
Próbowałem zdiagnozować problem, ale niestety bezskutecznie. Proszę o pomoc o sam już włosy z głowy rwę....
EDIT
właśnie odkryłem, że zapytanie wykonuje się poprawnie na serwerze MYSQL55, a błąd występuje na Mariadb8
SELECT name, telefon, saldo FROM ( SELECT * FROM ( SELECT name, saldo FROM ( SELECT tab2.imie_nazwisko AS name, tab2.masa AS masa, round((COALESCE(xx.kwota,0)-SUM(saldo)),2) AS saldo, SUM(kwota) AS kwota FROM ( SELECT imie_nazwisko, masa, cena, przeznaczenie, zwrot, ilosc, case when waluta='' && przeznaczenie='Punkty' then (cena*masa*ilosc) when waluta='' && przeznaczenie='Osobiste' then (-(cena*masa*ilosc)*0) else 0 end AS saldo FROM ( SELECT ryczalt, imie_nazwisko AS imie_nazwisko, masa AS masa, cena AS cena, zwrot AS zwrot, waluta AS waluta, przeznaczenie AS przeznaczenie, id_book AS id_book, ilosc AS ilosc, end_pol AS end_pol FROM shot_new WHERE end_pol<='2022-05-09' ) AS tab1 ) AS tab2 LEFT JOIN ( SELECT SUM(kwota) AS kwota, imie_nazwisko, rodzaj FROM kasa WHERE data<='2022-09-05' AND (`data`>=(SELECT MAX(`data`) FROM kasa WHERE rodzaj='BS' AND rodzaj !='BK' AND rodzaj !='BB' AND koszty!='1')) GROUP BY imie_nazwisko ) xx ON xx.imie_nazwisko=tab2.imie_nazwisko GROUP BY tab2.imie_nazwisko ) ZZZ UNION SELECT imie_nazwisko, (SUM(kwota)) FROM kasa WHERE (data<='$data_do' AND kasa.imie_nazwisko NOT IN (SELECT imie_nazwisko FROM shot_new ) AND (`data`>=(SELECT MAX(`data`) FROM kasa WHERE rodzaj='BS' AND rodzaj !='BK' AND rodzaj !='BB' AND koszty!='1'))) AND koszty <>1 GROUP BY imie_nazwisko ) AS tab3 ORDER BY tab3.name ) AS tab4 LEFT JOIN uzytkownik ON tab4.name = uzytkownik.login WHERE telefon!='' AND saldo < 0 ORDER BY tab4.name ASC
z tego co zauważyłem to problemem jest na samym końcu "and saldo < 0" - bez tego zapytanie się wykonuje.