Zamierzam stworzyć w oparciu o tablę ZAKUPY listę pogrupowaną wg nr towarów i najlepszej ceny.
Lista ta rownież powinna zawierac ID tej tabeli (będący PRIMARY KEY)
Czyli podstawą wyjścia jest:
select ZK.NR_TOWARU, min(ZK.CENA) from ZAKUPY ZK where ZK.DATA between '2008' and '2007' group by ZK.NR_TOWARU
I teraz, jak dodać do utworzonej listy jeszcze ID z tabeli ZAKUPY. Oczywiscie grupowanie wg ID z wiadomych powodów odpada.
Pewnym rozwiązaniem jest operator IN w klauzuli where
czyli:
select ZK.ID, ZK.NR_TOWARU, min(ZK.CENA) from ZAKUPY ZK where ZK.DATA between '2008' and '2007' and ZK.ID in ( select ZK.NR_TOWARU, min(ZK.CENA) from ZAKUPY ZK where ZK.DATA between '2008' and '2007' group by ZK.NR_TOWARU
)
Jednak przy dłuższym okresie strasznie długo trwa realizacja zapytania - kilka godz - i jest to niedposzczalne.
Czy jest inna metoda ?