Ich brauche Lücken in meiner Tabelle ausfüllen. JEDE ID (x) kann mehr als ein CKD_STAGE haben, aber es gibt einige Monate mit Nullwerten. Ich möchte die Zwischenräume mit dem letzten bekannten CKD_STAGE füllen. Hier ist, was ich bisher habe.Füllen Sie Lücken zwischen den Daten
SELECT DISTINCT DOS, x, CKD_STAGE, REF_YEAR
FROM #CKD_MM
DECLARE @MAXDOS INT = (SELECT MAX(DOS) FROM #CKD_MM)
DECLARE @MINDOS INT = (SELECT MIN(DOS) FROM #CKD_MM)
Update #CKD_MM
set CKD_STAGE = @MAXDOS
WHERE CKD_STAGE is null
AND DOS BETWEEN @MAXDOS AND @MINDOS
Meine Logik unterscheidet sich x-ID und schauen Sie sich die Termine (DOS) und CKD_Stage für jede eindeutige ID zu finden. Betrachte das maximale und minimale Datum für jede ckd_stage und fülle die Lücken dazwischen mit dem maximalen Wert. Das Programm läuft, aber ich bekomme immer noch NULL-Werte.
Hier ist eine Momentaufnahme dessen, was die Tabelle sieht aus wie mit einem der
DOS x CKD_STAGE REF_YEAR
201405 480000000 2 2014
201510 480000000 NULL 2015
201504 480000000 NULL 2015
201506 480000000 NULL 2015
201512 480000000 NULL 2015
201511 480000000 NULL 2015
201409 480000000 2 2014
201509 480000000 3 2015
201507 480000000 NULL 2015
201404 480000000 NULL 2014
201501 480000000 NULL 2015
201411 480000000 NULL 2014
201402 480000000 NULL 2014
201503 480000000 NULL 2015
von id Also muss ich alle NULLS mit Daten vor 201.509 2 sein, und alle nach 201.509 3. Ich habe 1000 sein von Aufzeichnungen, damit ich über eine Reihe von verschiedenen IDs und verschiedenen CKD_STAGES arbeiten muss.
Nein, ich brauche sie alle Wertebereich für das Datum zu arbeiten über und CKD_STAGE, ich habe 100 von den Aufzeichnungen über die Tabelle ist nur eine Momentaufnahme von 1 Datensatz (eine ID). –
Sie können Fallanweisungen für diese Bereichswerte schreiben. Sie können Ihr Szenario bereitstellen, so dass ich Ihnen für Ihren Wertebereich helfen kann – Rams