У меня есть запрос, в котором я обнаруживаю изменение значения
With RankedDates As
(
Select T1.RecTime, T1.Col, T1.Message, T1.ismsg
, Row_Number() Over( Partition By T1.Col Order By T1.[RecTime] ) As Num
From [ActvXDeltaOut] As T1
)
Select T1.[RecTime], T1.Col
, T1.Message As InitialValue
, T1.ismsg As Value
, T2.[RecTime] As ChangedDate
From RankedDates As T1
Join RankedDates As T2
On T2.Col = T1.Col
And T2.Num = T1.Num + 1
And T2.ismsg <> T1.ismsg
Но когда первое значение равно 1, мне нужно также сохранить этот узел, поэтому начальное значение должно быть 0, а не первое значение из запроса, потому что если я получу 1-> 0, я никогда не узнаю, что было 1, но мне нужно знаю это. И если есть 0, мне все равно.
например, если я получил первый узел одинаково:
2011-03-01 00: 00: 00.000 1 Сообщение
Мне нужно это получить.
добавлено:
У меня есть стек данных без T2.ismsg <> T1.ismsg :
2011-03-01 00: 00: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 10: 00.000
2011-03-01 00: 10: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 20: 00.000
2011-03-01 00: 20: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 30: 00.000
2011-03-01 00: 30: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 40: 00.000
2011-03-01 00: 40: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 50: 00.000
2011-03-01 00: 50: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 00: 00.000
2011-03-01 01: 00: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 10: 00.000
2011-03-01 01: 10: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 20: 00.000
2011-03-01 01: 20: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 30: 00.000
2011-03-01 01: 30: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 40: 00.000
2011-03-01 01: 40: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 01: 50: 01.000
2011-03-01 01: 50: 01.000 PBSU311PBSU311_F Длинное сообщение1 2011-03-01 02: 00: 01.000 2011-03-01 02: 00: 01.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 02: 10: 01.000 2011-03-01 02: 10: 01.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 02: 20: 01.000 2011-03-01 02: 20: 01.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 02: 30: 01.000
с T2.ismsg <> T1.ismsg У меня ничего нет
Если сначала ismsg = 1, как я здесь, для каждого Col (T2.Col = T1.Col) мне нужно вывести этот первый узел, например:
2011-03-01 00: 00: 00.000 PBSU311PBSU311_F Длинное сообщение 1 2011-03-01 00: 10: 00.000
Так что мне нужно как-то инициализировать ismsg по умолчанию для всех Cols, чтобы получить 0, чтобы получитьон