[sql server 2000] Najwieksza data dla danego id

0

Witam serdecznie,

Mam problem z którym nie potrafię sobie poradzić:
Mianowicie mam wyciągnąc największą datę dla danego id które się powtarza.
Używając podzapytania z MAX(data) wyciąga mi jeden wiersz dla całej tabeli albo nic.
struktura tabeli
cena_id (unikalne), towar_id (powtarza sie), data_waznaod (moga byc takie same), rodzaj_cen_towaru (powtarza sie), kwota

Chodzi o to mianowicie by wyciągnąć najnowszą datę z kwotą dla towaru_id (które powtarza się z różnymi datami, połączone tabele INNER JOIN )
Moje próby to:
SELECT *
FROM cena
WHERE data_waznaod =
(SELECT DISTINCT cena.towar_id, MAX(cena.data_waznaod)
FROM cena
group by cena.towar_id)

Select *
FROM cena
WHERE data_waznaod = (SELECT MAX(data_waznaod)
FROM cena)

z reguły albo mi wyciąga jeden wiersz albo nic, cale zapytanie:

SELECT TOP 100 PERCENT towar.towar_ident AS 'Identyfikator', towar.nazwa AS 'Nazwa towaru',
cena.data_waznaod, cena.kwota AS 'Cena NETTO'
FROM towar INNER JOIN
cena ON towar.cena_id = cena.cena_id
WHERE (towar.ilosc > 0) AND (cena = (SELECT MAX(data_waznaod) FROM cena)

Próbowałem w INEER JOIN dodając klauzulę WHERE z podzapytaniem SELECT,

Wiec prosiłbym chociaż o jakąś odpowiedź, nie musi to być nawet rozwiązanie.
Ponieważ już stworzyłem dość dużo wersji zapytań, z których wynika że można to zrobić na różne sposoby z których żaden nie wyciąga mi potrzebnych informacji, ale kręcę się nadal w miejscu.

Pozdrawiam.

0

MAX + group by ID

0

SELECT c.id, max(c.data)
FROM cena c
GROUP BY c.id
HAVING COUNT(c.id) > 1

0
AdamPL napisał(a)

SELECT c.id, max(c.data)
FROM cena c
GROUP BY c.id
HAVING COUNT(c.id) > 1

Serdeczne dzięki, brakowało mi HAVING COUNT(c.id) > 1
Jeszcze raz dzięki.
Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.