Witam,
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 Mariadb8SELECT 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.
Ten post edytował krzesik 10.05.2022, 11:08:55