Посчитать непрерывные значения предшествующие последней записи по дате

haltenberg
Дата: 24.01.2009 22:25:21
Date        Code    Value    FixDate
---------- ---- ----- -------
19.01.2009 ABC 123 NULL
20.01.2009 ABC 321 NULL
21.01.2009 ABC 321 20.01.2009
22.01.2009 ABC 321 20.01.2009
23.01.2009 ABC 321 20.01.2009

Нужно получить последнюю дату и количество непрерывных FixDate у текущей и предыдущих Date, т.е.

Date        Code    FixCount
---- ---- --------
23.01.2009 ABC 3

Для набора данных:

Date        Code    Value    FixDate
---------- ---- ----- -------
19.01.2009 ABC 123 NULL
20.01.2009 ABC 321 NULL
21.01.2009 ABC 321 20.01.2009
22.01.2009 ABC 321 NULL
23.01.2009 ABC 321 22.01.2009

ожидаемый результат:

Date        Code    FixCount
---- ---- --------
23.01.2009 ABC 1

Следующий запрос тупо считает количество FixDate
SELECT Max([Date]) [Date], Max(Code) Code, Count(FixDate) FixCount FROM Tbl
GROUP BY Code
HAVING Count(FixDate) > 0
как исправить FixCount, чтобы он считал только непрерывные FixDate?

Спасибо!
_djХомяГ
Дата: 24.01.2009 23:28:46
по поводу интервалов тут
aleks2
Дата: 25.01.2009 11:10:48
_djХомяГ
по поводу интервалов тут


SELECT Max([Date]) [Date], Max(Code) Code, Count(*) FixCount \nFROM Tbl T\nWHERE Date between \n(select max(Date) FROM Tbl X WHERE not exists(select * FROM Tbl Y WHERE Y.DATE=X.DATE-1 AND Y.FixDate=X.FixDate)) \nAND \n(select max(Date) FROM Tbl)\nGROUP BY Code