This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View File

@@ -0,0 +1,427 @@
-- =============================================
-- Description: Az sp visszaadja az adatbázisban található oktatás-szakmai és infomratikai hibákat
-- =============================================
IF OBJECT_ID('dbo.sp_Global_GetDatabaseErrors') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_Global_GetDatabaseErrors]
END
GO
CREATE PROCEDURE [dbo].[sp_Global_GetDatabaseErrors]
@AktivTanevNev nvarchar(20) -- Ami jelenleg az aktív tanév kellene, hogy legyen
AS
BEGIN
CREATE TABLE #ProblemTable (
ProblemaTipus nvarchar(12)
,Tipus nvarchar(100)
,Mennyiseg int
,Intezmeny int
,Tanev int
)
-- Intézmény törölt, de a fenntartóazonosítója nem nulla
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Intezmeny_Torolt_FenntartoNem999', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE main.TOROLT = 'T' AND C_FENNTARTOAZONOSITO <> 999
GROUP BY main.ID
-- Intézmény nem törölt, de a fenntartóazonosítója nulla
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Intezmeny_NemTorolt_Fenntarto999', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE main.TOROLT = 'F' AND C_FENNTARTOAZONOSITO = 999
GROUP BY main.ID
-- Intézmény nem törölt, de mégis "_old" az azonosítója
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Intezmeny_NemTorolt_Old', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE main.TOROLT = 'F' AND C_AZONOSITO LIKE '%[_]old'
GROUP BY main.ID
-- Intézménynek nincs aktív tanéve
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Intezmeny_Tanev_NincsAktiv', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE 0 = (SELECT COUNT(1) FROM T_TANEV joint WHERE joint.C_INTEZMENYID = main.ID AND joint.C_AKTIV = 'T' AND joint.TOROLT = 'F') AND main.TOROLT = 'F'
GROUP BY main.ID
-- Intézménynek több aktív tanéve van
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Intezmeny_Tanev_TobbAktiv', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE 1 < (SELECT COUNT(1) FROM T_TANEV joint WHERE joint.C_INTEZMENYID = main.ID AND joint.C_AKTIV = 'T' AND joint.TOROLT = 'F') AND main.TOROLT = 'F'
GROUP BY main.ID
-- Intézménynek nem az sp paramétereként megadott tanév az aktív tanéve
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Information', 'Intezmeny_Tanev_RosszAktiv', COUNT(1), main.ID, 0
FROM T_INTEZMENY main
WHERE 0 = (SELECT COUNT(1) FROM T_TANEV joint WHERE joint.C_INTEZMENYID = main.ID AND joint.C_AKTIV = 'T' AND joint.TOROLT = 'F' AND joint.C_NEV = @AktivTanevNev) AND main.TOROLT = 'F'
GROUP BY main.ID
-- Felhasználó és Alkalmazott Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Alkalmazott_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_ALKALMAZOTT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_ALINTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Alkalmazott Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Alkalmazott_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_ALKALMAZOTT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_ALTANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Alkalmazott Törölt inkonzisztencia (Felhasználó)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Alkalmazott_ToroltFelhasznalo', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_ALKALMAZOTT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'T' AND joint.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Alkalmazott Törölt inkonzisztencia (Alkalmazott)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Alkalmazott_ToroltAlkalmazott', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_ALKALMAZOTT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'F' AND joint.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Tanuló Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Tanulo_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_TANULO joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_ALINTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Tanuló Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Tanulo_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_TANULO joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_ALTANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Tanuló Törölt inkonzisztencia (Felhasználó)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Tanulo_ToroltFelhasznalo', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_TANULO joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'T' AND joint.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó és Tanuló Törölt inkonzisztencia (Tanuló)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Tanulo_ToroltAlkalmazott', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_TANULO joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'F' AND joint.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó egyszerre Alkalmazott és Tanuló is
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Felhasznalo_Alkalmazott_TanuloIs', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 < (SELECT COUNT(1) FROM T_ALKALMAZOTT joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND 0 < (SELECT COUNT(1) FROM T_TANULO joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Felhasználó egyszerre Alkalmazott és Tanuló is (Összes)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Warning', 'Felhasznalo_Alkalmazott_TanuloIsOsszes', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FELHASZNALO main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 < (SELECT COUNT(1) FROM T_ALKALMAZOTT joint WHERE joint.ID = main.ID) AND 0 < (SELECT COUNT(1) FROM T_TANULO joint WHERE joint.ID = main.ID) AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Osztály Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_OSZTALY joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_ALINTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Osztály Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_OSZTALY joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_ALTANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Osztály Törölt inkonzisztencia (Osztálycsoport)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_ToroltOsztalycsoport', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_OSZTALY joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'T' AND joint.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Osztály Törölt inkonzisztencia (Osztály)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_ToroltOsztaly', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_OSZTALY joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'F' AND joint.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Csoport Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Csoport_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_CSOPORT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_ALINTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Csoport Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Csoport_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_CSOPORT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_ALTANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Csoport Törölt inkonzisztencia (Osztálycsoport)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Csoport_ToroltOsztalycsoport', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_CSOPORT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'T' AND joint.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport és Csoport Törölt inkonzisztencia (Csoport)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Csoport_ToroltCsoport', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_CSOPORT joint ON joint.ID = main.ID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.TOROLT = 'F' AND joint.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport egyszerre Osztály és Csoport is
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_CsoportIs', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 < (SELECT COUNT(1) FROM T_OSZTALY joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND 0 < (SELECT COUNT(1) FROM T_CSOPORT joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport egyszerre Osztály és Csoport is (Osszes)
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Warning', 'Osztalycsoport_Osztaly_CsoportIsOsszes', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 < (SELECT COUNT(1) FROM T_OSZTALY joint WHERE joint.ID = main.ID) AND 0 < (SELECT COUNT(1) FROM T_CSOPORT joint WHERE joint.ID = main.ID) AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Osztálycsoport se nem osztály, se nem csoport
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Osztalycsoport_Osztaly_CsoportSe', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_OSZTALYCSOPORT main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_OSZTALY joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND 0 = (SELECT COUNT(1) FROM T_CSOPORT joint WHERE joint.ID = main.ID AND joint.TOROLT = 'F') AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Alkalmazott_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_FELHASZNALO joint ON joint.ID = main.C_TANARID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_INTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Alkalmazott_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_FELHASZNALO joint ON joint.ID = main.C_TANARID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_TANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott Törölt inkonzisztencia
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Alkalmazott_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_FELHASZNALO joint ON joint.ID = main.C_TANARID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE joint.TOROLT = 'T' AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott Nem létezik
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Alkalmazott_NemLetezik', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_FELHASZNALO joint WHERE joint.ID = main.C_TANARID) AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott Nem létezik de a TTF törölt
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Warning', 'Foglalkozas_Alkalmazott_NemLetezik_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_FELHASZNALO joint WHERE joint.ID = main.C_TANARID) AND main.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Alkalmazott ahol a felhasználó nem alkalmazott
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Alkalmazott_NemAlkalmazott', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_FELHASZNALO joint ON joint.ID = main.C_TANARID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_ALKALMAZOTT a WHERE a.ID = joint.ID)
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Tantárgy Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Tantargy_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_TANTARGY joint ON joint.ID = main.C_TANTARGYID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_INTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Tantárgy Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Tantargy_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_TANTARGY joint ON joint.ID = main.C_TANTARGYID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_TANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Tantárgy Törölt inkonzisztencia
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Tantargy_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_TANTARGY joint ON joint.ID = main.C_TANTARGYID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE joint.TOROLT = 'T' AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Tantárgy Nem létezik
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_Tantargy_NemLetezik', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_TANTARGY joint WHERE joint.ID = main.C_TANTARGYID) AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Tantárgy Nem létezik de a TTF törölt
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Warning', 'Foglalkozas_Tantargy_NemLetezik_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_TANTARGY joint WHERE joint.ID = main.C_TANTARGYID) AND main.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Osztálycsoport Intézménye nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_OsztalyCsoport_IntezmenyId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_OSZTALYCSOPORT joint ON joint.ID = main.C_OSZTALYCSOPORTID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_INTEZMENYID <> joint.C_INTEZMENYID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Osztálycsoport Tanéve nem stimmel
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_OsztalyCsoport_TanevId', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_OSZTALYCSOPORT joint ON joint.ID = main.C_OSZTALYCSOPORTID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE main.C_TANEVID <> joint.C_TANEVID
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Osztálycsoport Törölt inkonzisztencia
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_OsztalyCsoport_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_OSZTALYCSOPORT joint ON joint.ID = main.C_OSZTALYCSOPORTID
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE joint.TOROLT = 'T' AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Osztálycsoport Nem létezik
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Error', 'Foglalkozas_OsztalyCsoport_NemLetezik', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_OSZTALYCSOPORT joint WHERE joint.ID = main.C_OSZTALYCSOPORTID) AND main.TOROLT = 'F'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Foglalkozás és Osztálycsoport Nem létezik de a TTF törölt
INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
SELECT 'Warning', 'Foglalkozas_OsztalyCsoport_NemLetezik_Torolt', COUNT(1), main.C_INTEZMENYID, main.C_TANEVID
FROM T_FOGLALKOZAS main
INNER JOIN T_INTEZMENY i ON i.ID = main.C_INTEZMENYID AND i.TOROLT = 'F'
INNER JOIN T_TANEV t ON t.ID = main.C_TANEVID AND t.TOROLT = 'F'
WHERE 0 = (SELECT COUNT(1) FROM T_OSZTALYCSOPORT joint WHERE joint.ID = main.C_OSZTALYCSOPORTID) AND main.TOROLT = 'T'
GROUP BY main.C_INTEZMENYID, main.C_TANEVID
-- Megjelenítés
SELECT * FROM #ProblemTable Order By ProblemaTipus ASC, Mennyiseg DESC
END
GO