kreta/Kreta.DataAccess.Migrations/DBScripts/Database/sp_Global_GetDatabaseErrors.sql
2024-03-13 00:33:46 +01:00

478 lines
No EOL
19 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