480 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- 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)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE i.TOROLT = 'T' AND i.C_FENNTARTOAZONOSITO <> 999
 | 
						|
    GROUP BY i.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)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO = 999
 | 
						|
    GROUP BY i.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)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE i.TOROLT = 'F' AND i.C_AZONOSITO LIKE '%[_]old'
 | 
						|
    GROUP BY i.ID
 | 
						|
 | 
						|
    -- Intézménynek nincs aktív tanéve
 | 
						|
    INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
 | 
						|
    SELECT
 | 
						|
        'Error'
 | 
						|
         ,'Intezmeny_Tanev_NincsAktiv',COUNT(1)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE NOT EXISTS (SELECT 1 FROM T_TANEV WHERE C_INTEZMENYID = i.ID AND C_AKTIV = 'T' AND TOROLT = 'F') AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
    GROUP BY i.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)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE 1 < (SELECT COUNT(1) FROM T_TANEV WHERE C_INTEZMENYID = i.ID AND C_AKTIV = 'T' AND TOROLT = 'F') AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
    GROUP BY i.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)
 | 
						|
         ,i.ID
 | 
						|
         ,0
 | 
						|
    FROM T_INTEZMENY i
 | 
						|
    WHERE NOT EXISTS (SELECT COUNT(1) FROM T_TANEV WHERE C_INTEZMENYID = i.ID AND C_AKTIV = 'T' AND TOROLT = 'F' AND C_NEV = @AktivTanevNev) AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
    GROUP BY i.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)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND fh.C_INTEZMENYID <> a.C_ALINTEZMENYID AND a.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnfh ON tnfh.ID = fh.C_TANEVID AND tnfh.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tna ON tna.ID=a.C_ALTANEVID AND tna.TOROLT='F'
 | 
						|
    WHERE fh.TOROLT='F' AND (tnfh.C_AKTIV='T' OR tna.C_AKTIV='T')
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.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)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND fh.C_TANEVID <> a.C_ALTANEVID
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnfh ON tnfh.ID = fh.C_TANEVID AND tnfh.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tna ON tna.ID=a.C_ALTANEVID AND tna.TOROLT='F'
 | 
						|
    WHERE fh.TOROLT='F' AND (tnfh.C_AKTIV='T' OR tna.C_AKTIV='T')
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.C_TANEVID
 | 
						|
 | 
						|
    -- Felhasználó és Alkalmazott Törölt inkonzisztencia (Felhasználó)
 | 
						|
    INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
 | 
						|
    SELECT
 | 
						|
        'Error'
 | 
						|
         ,'Felhasznalo_Alkalmazott_ToroltFelhasznaloVagyAlkalmazott'
 | 
						|
         ,COUNT(1)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_ALKALMAZOTT a ON a.ID = fh.ID AND fh.TOROLT<>a.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = fh.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE NOT EXISTS(SELECT 1 FROM T_TANULO WHERE ID=fh.ID AND TOROLT='F' AND fh.TOROLT='F')
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.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)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_TANULO t ON t.ID = fh.ID AND fh.C_INTEZMENYID <> t.C_ALINTEZMENYID
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = fh.C_TANEVID AND t.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE fh.TOROLT='F'
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.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)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_TANULO t ON t.ID = fh.ID AND fh.C_TANEVID <> t.C_ALTANEVID AND t.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnfh ON tnfh.ID = fh.C_TANEVID AND tnfh.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tnt ON tnt.ID = t.C_ALTANEVID AND tnt.TOROLT = 'F'
 | 
						|
    WHERE fh.TOROLT='F' AND (tnt.C_AKTIV='T' OR tnfh.C_AKTIV='T')
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.C_TANEVID
 | 
						|
 | 
						|
    -- Felhasználó és Tanuló Törölt inkonzisztencia (Felhasználó)
 | 
						|
    INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
 | 
						|
    SELECT
 | 
						|
        'Error'
 | 
						|
         ,'Felhasznalo_Tanulo_ToroltFelhasznaloVagyTanulo'
 | 
						|
         ,COUNT(1)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_TANULO t ON t.ID = fh.ID AND t.TOROLT='F' AND fh.TOROLT <> t.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = fh.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.C_TANEVID
 | 
						|
 | 
						|
    -- Felhasználó egyszerre Alkalmazott és Tanuló is
 | 
						|
    INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
 | 
						|
    SELECT
 | 
						|
        'Error'
 | 
						|
         ,'Felhasznalo_Alkalmazott_TanuloIs'
 | 
						|
         ,COUNT(1)
 | 
						|
         ,fh.C_INTEZMENYID
 | 
						|
         ,fh.C_TANEVID
 | 
						|
    FROM T_FELHASZNALO fh
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = fh.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE EXISTS (SELECT 1 FROM T_ALKALMAZOTT WHERE ID = fh.ID AND TOROLT = 'F')
 | 
						|
      AND EXISTS (SELECT 1 FROM T_TANULO WHERE ID = fh.ID AND TOROLT = 'F')
 | 
						|
      AND fh.TOROLT = 'F'
 | 
						|
    GROUP BY fh.C_INTEZMENYID, fh.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND ocs.C_INTEZMENYID <> o.C_ALINTEZMENYID AND o.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE ocs.TOROLT='F'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND ocs.C_TANEVID <> o.C_ALTANEVID AND o.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnocs ON tnocs.ID = ocs.C_TANEVID AND tnocs.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tno ON tno.ID = o.C_ALTANEVID AND tno.TOROLT = 'F'
 | 
						|
    WHERE ocs.TOROLT='F' AND (tno.C_AKTIV='T' OR tnocs.C_AKTIV='T')
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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_ToroltOsztalycsoportVagyOsztaly'
 | 
						|
         ,COUNT(1)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND ocs.TOROLT <> o.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_CSOPORT cs ON cs.ID = ocs.ID AND ocs.C_INTEZMENYID <> cs.C_ALINTEZMENYID AND cs.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE ocs.TOROLT='F'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_CSOPORT cs ON cs.ID = ocs.ID AND  ocs.C_TANEVID <> cs.C_ALTANEVID AND cs.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnocs ON tnocs.ID = ocs.C_TANEVID AND tnocs.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tncs ON tncs.ID = cs.C_ALTANEVID AND tncs.TOROLT = 'F'
 | 
						|
    WHERE ocs.TOROLT='F' AND (tncs.C_AKTIV='T' OR tnocs.C_AKTIV='T')
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.C_TANEVID
 | 
						|
 | 
						|
    -- Osztálycsoport és Csoport Törölt inkonzisztencia (Osztálycsoport)
 | 
						|
    INSERT INTO #ProblemTable (ProblemaTipus, Tipus, Mennyiseg, Intezmeny, Tanev)
 | 
						|
    SELECT
 | 
						|
        'Error'
 | 
						|
         ,'Osztalycsoport_Csoport_ToroltOsztalycsoportVagyCsoport'
 | 
						|
         ,COUNT(1)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_CSOPORT cs ON ocs.ID = cs.ID AND ocs.TOROLT <> cs.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F'  AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = ocs.ID AND TOROLT = 'F')
 | 
						|
      AND EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = ocs.ID AND TOROLT = 'F')
 | 
						|
      AND ocs.TOROLT = 'F'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,ocs.C_INTEZMENYID
 | 
						|
         ,ocs.C_TANEVID
 | 
						|
    FROM T_OSZTALYCSOPORT ocs
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = ocs.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = ocs.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALY WHERE ID = ocs.ID AND TOROLT = 'F')
 | 
						|
      AND NOT EXISTS (SELECT 1 FROM T_CSOPORT WHERE ID = ocs.ID AND TOROLT = 'F')
 | 
						|
      AND ocs.TOROLT = 'F'
 | 
						|
    GROUP BY ocs.C_INTEZMENYID, ocs.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_FELHASZNALO fh ON fh.ID = f.C_TANARID AND  fh.C_INTEZMENYID <> f.C_INTEZMENYID AND fh.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_FELHASZNALO fh ON fh.ID = f.C_TANARID AND f.C_TANEVID <> fh.C_TANEVID AND fh.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnf ON tnf.ID = f.C_TANEVID AND tnf.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tna ON tna.ID = f.C_TANEVID AND tna.TOROLT = 'F'
 | 
						|
    WHERE f.TOROLT='F' AND (tna.C_AKTIV='T' OR tnf.C_AKTIV='T')
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_FELHASZNALO fh ON fh.ID = f.C_TANARID AND fh.TOROLT <> f.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE NOT EXISTS (SELECT 1 FROM T_ALKALMAZOTT WHERE ID = f.C_TANARID AND TOROLT='F') AND f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_TANTARGY tgy ON tgy.ID = f.C_TANTARGYID AND tgy.TOROLT='F' AND tgy.C_INTEZMENYID<>f.C_INTEZMENYID
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_TANTARGY tgy ON tgy.ID = f.C_TANTARGYID AND f.C_TANEVID <> tgy.C_TANEVID AND tgy.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnf ON tnf.ID = f.C_TANEVID AND tnf.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tntgy ON tntgy.ID = tgy.C_TANEVID AND tntgy.TOROLT = 'F'
 | 
						|
    WHERE f.TOROLT='F' AND (tnf.C_AKTIV='T' OR tntgy.C_AKTIV='T')
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_TANTARGY tgy ON tgy.ID = f.C_TANTARGYID AND tgy.TOROLT<>f.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND f.C_INTEZMENYID <> ocs.C_INTEZMENYID AND ocs.TOROLT='F'
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND ocs.TOROLT='F' AND f.C_TANEVID <> ocs.C_TANEVID
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tnf ON tnf.ID = f.C_TANEVID AND tnf.TOROLT = 'F'
 | 
						|
             INNER JOIN T_TANEV tnocs ON tnocs.ID = ocs.C_TANEVID AND tnocs.TOROLT = 'F'
 | 
						|
    WHERE f.TOROLT='F' AND (tnocs.C_AKTIV='T' OR tnf.C_AKTIV='T')
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.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)
 | 
						|
         ,f.C_INTEZMENYID
 | 
						|
         ,f.C_TANEVID
 | 
						|
    FROM T_FOGLALKOZAS f
 | 
						|
             INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = f.C_OSZTALYCSOPORTID AND f.TOROLT <> ocs.TOROLT
 | 
						|
             INNER JOIN T_INTEZMENY i ON i.ID = f.C_INTEZMENYID AND i.TOROLT = 'F' AND i.C_FENNTARTOAZONOSITO<900
 | 
						|
             INNER JOIN T_TANEV tn ON tn.ID = f.C_TANEVID AND tn.TOROLT = 'F' AND tn.C_AKTIV='T'
 | 
						|
    WHERE f.TOROLT='F'
 | 
						|
    GROUP BY f.C_INTEZMENYID, f.C_TANEVID
 | 
						|
 | 
						|
    -- Megjelenítés
 | 
						|
    SELECT * FROM #ProblemTable Order By ProblemaTipus ASC, Mennyiseg DESC
 | 
						|
 | 
						|
END
 | 
						|
GO |