Mam tabelę kursy i w niej dzienne wyceny aktywów.
Potrzebuję wyciągnąć z niej wyceny z ostatniego dnia miesiąca, ale ten dzień nie zawsze wypada w kalendarzowym końcu miesiąca.
Następujące zapytanie wyławia taki rekord bez problemu:
SELECT * FROM `kursy` WHERE `name` = 'nazwa' AND `update-date` LIKE '2008-11%' ORDER BY `update-date` DESC LIMIT 1;
Teraz powstaje pytanie jak to zrobić, aby wyłowić rekordy z zakresu '2007-01' do '2010-01' biorąc pod uwagę powyższe założenia.
Oczywiście mogę zrobić wielokrotne UNION (zwiększając miesiąc), ale może jest jakiś lepszy sposób, który zrobi jakąś pętlę zapytań z dodawaniem miesiąca?
(SELECT * FROM `kursy` WHERE `name` = 'nazwa' AND `update-date` LIKE '2008-10%' ORDER BY `update-date` DESC LIMIT 1) UNION (SELECT * FROM `kursy` WHERE `name` = 'nazwa' AND `update-date` LIKE '2008-11%' ORDER BY `update-date` DESC LIMIT 1)
Będę wdzięczny za propozycje.
UPDATE
Kolumna to date, ale mogę zmienić, gdyby to coś pomogło.
Pozdrawiam,
Piotr Zaniewicz