Отбор записей с привязкой к дате

chipsic
Дата: 29.09.2005 08:41:25
Господа, подскажите как возможно произвести выборку из следующей таблицы:
касса дата сумма галка
1 01.01.05 300 0
1 02.01.05 0 1
1 03.01.05 100 0
1 04.01.05 200 0
2 01.01.05 0 1
2 02.01.05 300 0
2 03.01.05 0 1
2 04.01.05 100 0
и т.д.
необходимо вытаскивать записи по кассам превышающие либо равные последней дате в которой "сумма" = 0 и "галка"=1, в случае если у кассы таких записей нет вытаскивать все записи. Зараннее спасибо всем.
adv
Дата: 29.09.2005 13:14:39
Немного громоздко, но работает:
SELECT Табл.касса, Табл.дата, Табл.сумма, Табл.галка, (select count(дата)  from Табл as tab 
where tab.сумма=0 and tab.галка and tab.дата>=(select max(дата)  from Табл as tab1 
where tab1.сумма=0 and tab1.галка and tab1.касса=Табл.касса) ) AS Выражение1
FROM Табл
WHERE (((Табл.дата)>=IIf((select count(дата)  from Табл as tab where tab.сумма=0 and tab.галка 
and tab.дата>=(select max(дата)  from Табл as tab1 where tab1.сумма=0 and tab1.галка 
and tab1.касса=Табл.касса) )>1,(select max(дата)  from Табл as tbl where сумма=0 and галка 
and tbl.касса=Табл.[касса]),#01/01/2000#)))
ORDER BY Табл.касса;
adv
Дата: 29.09.2005 13:16:27
Тестовое поле забыл убрать:
SELECT Табл.касса, Табл.дата, Табл.сумма, Табл.галка FROM Табл
WHERE (((Табл.дата)>=IIf((select count(дата)  from Табл as tab where tab.сумма=0 and tab.галка 
and tab.дата>=(select max(дата)  from Табл as tab1 where tab1.сумма=0 and tab1.галка 
and tab1.касса=Табл.касса) )>1,(select max(дата)  from Табл as tbl where сумма=0 and галка 
and tbl.касса=Табл.[касса]),#01/01/2000#)))
ORDER BY Табл.касса;
chipsic
Дата: 30.09.2005 09:18:20
Огромное спасибо всем все получилось!