Ich brauche einige Anleitung und Hilfe mit einer Frage Ich bin nicht ganz sicher, wie in SQL Server 2012 zu lösen. Ich denke, LAG
und LEAD
Funktionen könnten nützlich sein, aber ich bin nicht sicher.Vergleichen der aktuellen Monat und vorherigen Monat Zeilen in einer Spalte, SQL Server 2012
Dies ist, was jetzt meine Daten aussieht:
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
201409 211 1
201410 211 0
201411 214 0
201412 214 3
Wir haben eine YearMonth
Spalte, die zeigt, wie der Status für jeden locationCode
aussah und ein Active
int, die für jede LocationCode
eine Qualität darstellt Ziel:
Mein Ziel ist es, die LocationCode
für für die Währung zu vergleichen ent YearMonth
(nennen wir es 201406
) und der vorherigen Yearmonth
(lassen 201405
es nennen):
Ein Beispiel:
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
Im Grunde, was ich versuche, herauszufinden, wie die aktuelle Monat Zeile vergleichen (201406) in die Zeile des Vormonats (201405) auf der Spalte Active
.
Wenn die Spaltedes aktuellen Monats nicht Null ist und der aktive Wert des vorherigen Monats Null war, schließen wir die Zeile des aktuellen Monats als "Neu" (1) else (0) ab.
Ein Beispiel ist unten angegeben:
==================================================
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
Wie kann ich dieses Problem lösen?
Ich habe eine Reihe von Variationen über ROW_NUMBER() sucht zum ersten Mal die Zeile und Active Null und die zweite Reihe wurde ein Nicht-Null-Wert, aber es kam nicht richtig, wie in vielen Fällen. Da der Aktive in einem Monat 1 sein konnte und andere nicht, ist mir deshalb ein Vergleich zwischen dem aktuellen und dem vorherigen Monat wichtig. – user3197575