--Migration CREATE TABLE #JavitandoAdatok ( EredetiTanitasioraId int ,JavitottTanitasioraId int ,DktFeladatId int ) -------------------------------------- -- Még javítható adatok gyűjtése -------------------------------------- INSERT INTO #JavitandoAdatok SELECT t.ID EredetiTanitasioraId ,hf.C_TANITASIORAID JavitottTanitasioraId ,hibasTanitasiorak.javitandoFeladatId DktFeladatId FROM T_TANITASIORA_OSSZES t LEFT JOIN T_DKT_FELADAT_OSSZES hf on t.C_TANTARGYID = hf.C_TANTARGYID and t.C_OSZTALYCSOPORTID = hf.C_OSZTALYCSOPORTID AND (t.C_TANARID = hf.C_ALKALMAZOTTID OR t.C_HELYETTESITOTANARID = hf.C_ALKALMAZOTTID) AND hf.C_DATUM = t.C_DATUM AND (hf.C_ORASZAM = t.C_ORASZAM OR CONVERT(datetime, CONVERT(varchar(8), hf.C_IDOPONT, 8)) = CONVERT(datetime, CONVERT(varchar(8), t.C_ORAKEZDETE, 8))) AND t.C_TANEVID = hf.C_TANEVID AND t.C_INTEZMENYID = hf.C_INTEZMENYID INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = hf.C_ROGZITOALKALMAZOTTID AND fh.TOROLT = 'F' AND fh.C_TANEVID = t.C_TANEVID AND fh.C_INTEZMENYID = t.C_INTEZMENYID INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = hf.C_TANTARGYID AND tt.TOROLT = 'F' AND tt.C_TANEVID = t.C_TANEVID AND tt.C_INTEZMENYID = t.C_INTEZMENYID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = hf.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = t.C_TANEVID AND ocs.C_INTEZMENYID = t.C_INTEZMENYID CROSS APPLY ( SELECT tanitasiora.id, feladat.ID javitandoFeladatId FROM T_DKT_FELADAT_OSSZES feladat INNER JOIN T_TANITASIORA_OSSZES tanitasiora ON tanitasiora.ID = feladat.C_TANITASIORAID WHERE feladat.C_TANITASIORAID IS NOT NULL AND tanitasiora.TOROLT = 'T' AND tanitasiora.id = t.id ) hibasTanitasiorak INNER JOIN T_TANITASIORA_OSSZES t2 on t2.ID = hf.C_TANITASIORAID AND t2.C_TANEVID = t.C_TANEVID AND t2.C_INTEZMENYID = t.C_INTEZMENYID WHERE hf.TOROLT = 'F' AND hf.C_FELADATTIPUSID = 0 AND t2.TOROLT = 'F' -------------------------------------- -- Még javítható adatok javítása -------------------------------------- UPDATE feladat SET feladat.C_TANITASIORAID = javitandoAdatok.JavitottTanitasioraId ,feladat.MODIFIER = 0 ,feladat.LASTCHANGED = GETDATE() ,feladat.SERIAL += 1 FROM #JavitandoAdatok javitandoAdatok INNER JOIN T_DKT_FELADAT_OSSZES feladat ON feladat.ID = javitandoAdatok.DktFeladatId AND feladat.C_TANITASIORAID = javitandoAdatok.EredetiTanitasioraId DROP TABLE #JavitandoAdatok -------------------------------------- -- Már nem javítható adatok NULL-ozása -------------------------------------- UPDATE feladat SET feladat.C_TANITASIORAID = NULL ,feladat.MODIFIER = 0 ,feladat.LASTCHANGED = GETDATE() ,feladat.SERIAL += 1 FROM T_DKT_FELADAT_OSSZES feladat INNER JOIN T_TANITASIORA_OSSZES tanitasiora ON tanitasiora.ID = feladat.C_TANITASIORAID AND feladat.C_TANEVID = tanitasiora.C_TANEVID AND feladat.C_INTEZMENYID = tanitasiora.C_INTEZMENYID WHERE feladat.C_TANITASIORAID IS NOT NULL AND tanitasiora.TOROLT = 'T'