Zapytanie SQL wybierajace konkretne wiersze bez powtarzania

0

witam
mam taki maly problem i potrzebuje go szybko rozwiazac. otoz mam tabela z danymi artykulu, jego aktualna iloscia, i data wprowadzenia artykulu na magazyn czy tez jego zejsciu z magazynu. Zapytanie ma zwracac daną ilość artykułów jaka była konkretnego dnia . Tabela wyglada tak

ID_ARTYKULU | ILOSC | DATA
1 | 5 | 2011/01/11 07:40
2 | 4 |2011/01/11 07:39
1 | 7 |2011/01/11 21:40

Zapytanie wyglada do tego tak :

SELECT ID_ARTYKULU, ILOSC,DATA
from TABELA
where date(DATA)='2011-01-11'
order by DATA desc;

i zwraca coś takiego
ID_ARTYKULU | ILOSC | DATA

1 | 7 |2011/01/11 21:40
1 | 5 | 2011/01/11 07:40
2 | 4 |2011/01/11 07:39

A chodzi mi o to aby zwracalo ostania wartosc artykulu np. 1 tak aby nie powtarzalo wiersza z jednym artykulem dwa razy

0
SELECT DISTINCT(ID_ARTYKULU), ILOSC,DATA
from TABELA
where date(DATA)='2011-01-11'
order by DATA desc;
0
SELECT 
  t.id, 
  t.ilosc, 
  x.data 
FROM 
  tabela t,
  (SELECT id, max(data) data FROM tabela GROUP BY id) x
WHERE
  t.id = x.id
  AND t.data = x.data
0

distinct do tego nie zadziala, ten drugi sposób zaraz sprawdze

0
select id_artykulu, ilosc, data from tabela t1 where data=(select max(data) from tabela where id_artykulu=t1.id_artykulu)

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.