SQL Server 2012 で解決する方法がよくわからない質問について、ガイダンスとヘルプが必要です。LAG
とLEAD
関数が役立つと思いますが、よくわかりません。
これは私のデータが今見えるものです:
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
201409 211 1
201410 211 0
201411 214 0
201412 214 3
YearMonth
それぞれのステータスがどのように見えるかを示す列と、それぞれlocationCode
のActive
品質を表す int があります。LocationCode
目的:
LocationCode
私の目的は、現在の forを比較することですYearMonth
(それを と呼びましょう201406
) と以前のものを比較します (それを とYearmonth
呼びましょう201405
):
例 :
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
基本的に私が理解しようとしているのは、現在の月の行 (201406) と呼ばれる列の前の月の行 (201405) を比較する方法Active
です。
当月の行列Active
がゼロ以外で、前月のアクティブがゼロであった場合、当月の行は「新規」(1) であると結論付けます (0)。
以下に例を示します。
==================================================
YearMonth LocationCode Active New
===================================================
201405 123 0 0
201406 123 2 1
201409 211 1 0
201410 211 0 0
201411 214 0 0
201412 214 3 1
どうすればこの問題を解決できますか?