Mam w bazie tabele:
towary; id, nazwa itd
faktury; id, dostawca, data zakupu itd
tabelę haszującą; id_towary, id_faktury, ceny zakupu itd
Jeden towar jest kupowany w wielu latach a ja potrzebuję wyciągnąć je z ostatnich dat w jakich zostały zakupione.
Niestety moje Selecty wyciągają wszystkie daty zakupów.
Jeśli zastosuję MAX(data_zak) to zaś wyfiltruje mi z ostatniego dnia, czyli nie wszystkie jakie chciałbym otrzymać.
SELECT t.id_towar, t.nazwa, f.data_zak FROM towar t LEFT JOIN (faktura f, faktura_has_towar thf) /* nie wiem WTF ale tak zostawię */ ON (t.id_towar=thf.id_towar AND f.id_faktura=thf.id_faktura ) WHERE t.nazwa LIKE '%jakaś niepełna nazwa towaru%' AND (t.id_towar,f.data_zak) IN (SELECT t.id_towar, MAX(f.data_zak) FROM towar t JOIN (faktura f, faktura_has_towar thf) ON (t.id_towar=thf.id_towar AND f.id_faktura=thf.id_faktura ) GROUP BY 1) ORDER BY t.nazwa, f.data_zak ASC
I Wielkie Dzięki za pomoc. Działa tak jak potrzebuję.
Mam dopiero 68 lat a nauka idzie mi strasznie wolno
Jeszcze raz Dziękuję Bardzo.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)