Обновление поля / столбца на основе значения текущей и предыдущей записи - PullRequest
0 голосов
/ 01 декабря 2011

Мне нужна помощь с обновлением поля / столбца «IsLatest» на основе сравнения между текущей и предыдущей записью.Я использую синтаксис CTE и могу получить текущую и предыдущую запись, но не могу обновить нужное поле / столбец «IsLatest», основываясь на поле / столбце «Значение» текущей и предыдущей записи.

Пример

Токовый выход

Dates                   Customer    Value   IsLatest
2010-01-01 00:00:00.000    1            12  1

Dates                   Customer    Value   IsLatest
2010-01-01 00:00:00.000    1            12  0
2010-01-02 00:00:00.000    1            30  1

Dates                   Customer    Value   IsLatest
2010-01-01 00:00:00.000    1            12  0
2010-01-02 00:00:00.000    1            30  0
2010-01-03 00:00:00.000    1            13  1

Ожидаемый конечный выход

Dates                   Customer    Value   ValueSetId IsLatest
2010-01-01 00:00:00.000    1            12     12          0
2010-01-01 00:00:00.000    1            12     13          0
2010-01-01 00:00:00.000    1            12     14          0

2010-01-02 00:00:00.000    1            30     12          0
2010-01-02 00:00:00.000    1            30     13          0
2010-01-02 00:00:00.000    1            30     14          0

2010-01-03 00:00:00.000    1            13     12          0
2010-01-03 00:00:00.000    1            13     13          0
2010-01-03 00:00:00.000    1            13     14          0

2010-01-04 00:00:00.000    1            14     12          0
2010-01-04 00:00:00.000    1            14     13          0
2010-01-04 00:00:00.000    1            14     14          1

1 Ответ

0 голосов
/ 01 декабря 2011
;WITH a AS
(
SELECT 
  Dates Customer Value, 
  row_number() over (partition by customer order by Dates desc, ValueSetId desc) rn
FROM @Customers)
SELECT Dates, Customer, Value, case when RN = 1 then 1 else 0 end IsLatest
FROM a
...