Mam funkcję w której wykorzystuję zagnieżdżone SELECTy. Podobno, w MySQL aliasy są widoczne do jednego zagnieżdżenia. Niestety kod, który działał na MS SQL, z tegoż powodu w MySQL nie działa. Ja jednak nie znam się dobrze na SQLu, kod tej funkcji pisałem ponad miesiąc temu i już nie pamiętam jak ona działa, a zrozumienie tego z samego kodu jest dla mnie nie lada bolączką. Proszę o pomoc:
Kod: Zaznacz cały
CREATE FUNCTION zwrocDlaMom(showId int)
RETURNS DECIMAL(12, 6)
BEGIN
DECLARE wynik DECIMAL(12, 6);
SET wynik =
(SELECT www.res
FROM
(
select sho.id as one, tit.title as two, sts.id as three, 1.0 / 100.0 * (100 - tit.cinema) * sts.amount * tit.duration /
(
select xxx as test
from
(
select ss.setId, sum(duration) as xxx
from shows ss
join movies mvt on mvt.id = ss.title
where ss.setId = sts.id
group by ss.setId
) as test
) as res
from movies tit
join shows sho on sho.title = tit.id
join invoices invo on invo.id = sho.invoice and invo.company = tit.company
join sets1 sts on sts.id = sho.setId
where sho.id = showId
) as www);
return wynik;
end;
Kod: Zaznacz cały
#1054 - Nieznana kolumna 'sts.id' w where clause
Proszę o pomoc. Pisałem na innym forum, ale jak na razie nie otrzymałem odpowiedzi w postaci rozwiązania. Jestem koderem języków C-podobnych. Proszę o pomoc.
Dzięki
Michał
PS.
Tu jest zrzut bazy z phpMyAdmin: