init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,248 @@
|
|||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
|
||||
END
|
||||
GO
|
||||
-- ===================================================================
|
||||
-- Author: Badits-Nyáradi József
|
||||
-- ===================================================================
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
|
||||
@pTanevId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pErtekelestipusaId INT,
|
||||
@pLezaroNaptipusId INT,
|
||||
@pTanoraiCsoportTipusIds INT = 1034,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pNemMulasztaIgazolasTipusIds INT = 1532, -- Iskola érdekű távollét
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId),
|
||||
(SELECT C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroNaptipusId),
|
||||
GETDATE())
|
||||
);
|
||||
DECLARE @osztalyoktanoraicsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY, C_TIPUSA INT, C_VEGZOSEVFOLYAM CHAR(1));
|
||||
DECLARE @osztalycsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY);
|
||||
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
DECLARE @szurtMulasztas TABLE (TIPUS_CHAR CHAR(1), C_TIPUS INT , C_IGAZOLT CHAR(1), C_TANULOID INT, C_GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT);
|
||||
|
||||
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
DECLARE @osztalyok TABLE(OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
|
||||
DECLARE @osztalyokTanulokszama TABLE (OSZTALYID INT, TANULOKSZAMA INT);
|
||||
DECLARE @osztalyokErtekeles TABLE (OSZTALYID INT, TANTARGYID INT, ATLAG FLOAT);
|
||||
DECLARE @osztalyokMulasztas TABLE (OSZTALYID INT, TIPUS_CHAR CHAR(1), C_TIPUS INT, C_IGAZOLT CHAR(1), MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1), DESCR CHAR(3));
|
||||
|
||||
-- OSZTÁLYOK ÉS TANÓRAI CSOPORTOK
|
||||
INSERT INTO @osztalyoktanoraicsoportok (OSZTALYCSOPORTID, C_TIPUSA, C_VEGZOSEVFOLYAM) (
|
||||
SELECT T_OSZTALYCSOPORT_OSSZES.ID, C_TIPUSA, C_VEGZOSEVFOLYAM
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
LEFT JOIN T_CSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_CSOPORT_OSSZES.ID
|
||||
LEFT JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
|
||||
WHERE ( C_TIPUSA IN (@pTanoraiCsoportTipusIds) OR T_OSZTALY_OSSZES.ID IS NOT NULL) AND C_TANEVID = @pTanevId
|
||||
);
|
||||
|
||||
-- TANTÁRGYAK
|
||||
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT T_TANTARGY_OSSZES.ID AS TANTARGYID, COALESCE(T_TANTARGY_OSSZES.C_NEVNYOMTATVANYBAN, T_TANTARGY_OSSZES.C_NEV) AS TANTARGY_NEV, T_DICTIONARYITEMBASE_OSSZES.C_NAME AS TARGYKATEGORIA_NEV, T_DICTIONARYITEMBASE_OSSZES.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, T_TANTARGY_OSSZES.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_TANTARGY_OSSZES
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
|
||||
WHERE T_TANTARGY_OSSZES.TOROLT = 'F' AND T_TANTARGY_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANTARGY_OSSZES.C_TANEVID = @pTanevId
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
-- OSZTÁLYOK
|
||||
SELECT T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV AS NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AS EVFOLYAM, T_DICTIONARYITEMBASE_OSSZES.C_ORDER AS SORREND, ROW_NUMBER() OVER(ORDER BY T_DICTIONARYITEMBASE_OSSZES.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC) AS Row#
|
||||
INTO #tempOsztalyok
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
|
||||
JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
||||
JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
|
||||
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId AND T_TANEV_OSSZES.TOROLT = 'F' AND T_TANEV_OSSZES.ID = @pTanevId
|
||||
ORDER BY Row#;
|
||||
|
||||
DECLARE @pOsztalyId INT = 0;
|
||||
DECLARE @sorrend INT = 0;
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
DELETE FROM @szurtMulasztas;
|
||||
DELETE FROM @osztalycsoportok;
|
||||
DELETE FROM @aktualisOsztalyCsoportok;
|
||||
DELETE FROM @osztalyTanulok;
|
||||
|
||||
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#
|
||||
FROM #tempOsztalyok
|
||||
WHERE @sorrend < Row#
|
||||
ORDER BY Row#;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
BREAK;
|
||||
END
|
||||
|
||||
INSERT INTO @osztalycsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyId)
|
||||
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT WHERE C_TIPUSA IN (@pTanoraiCsoportTipusIds)))
|
||||
);
|
||||
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
|
||||
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (@pTanoraiCsoportTipusIds)))
|
||||
);
|
||||
-- TANULÓK
|
||||
INSERT INTO @osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
|
||||
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES
|
||||
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
|
||||
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
|
||||
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
|
||||
);
|
||||
|
||||
--TANULÓK LISTA
|
||||
INSERT INTO @osztalyokTanulokszama (OSZTALYID, TANULOKSZAMA)
|
||||
SELECT @pOsztalyId AS OSZTALYID, COUNT(T_FELHASZNALO_OSSZES.ID) AS TANULOKSZAMA
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_FELHASZNALO_OSSZES.ID;
|
||||
|
||||
INSERT INTO @osztalyokErtekeles (OSZTALYID, TANTARGYID, ATLAG)
|
||||
SELECT @pOsztalyId AS OSZTALYID, C_TANTARGYID AS TANTARGYID, ROUND(AVG(CAST(ODIB.C_VALUE AS FLOAT)), 2) AS ATLAG
|
||||
FROM T_OSZTALYZATERTEKELES_OSSZES
|
||||
INNER JOIN T_TANULOERTEKELES_OSSZES ON T_TANULOERTEKELES_OSSZES.ID = T_OSZTALYZATERTEKELES_OSSZES.ID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANULOERTEKELES_OSSZES.C_TANEVID
|
||||
INNER JOIN T_OSZTALYZATTIPUS_OSSZES ON T_OSZTALYZATTIPUS_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_OSZTALYZAT
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS ODIB ON ODIB.ID = T_OSZTALYZATTIPUS_OSSZES.ID
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
|
||||
INNER JOIN @OSZTALYTANULOK AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOERTEKELES_OSSZES.C_TANULOID
|
||||
WHERE T_TANULOERTEKELES_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_OSZTALYZATERTEKELES_OSSZES.TOROLT = 'F' AND T_TANULOERTEKELES_OSSZES.C_TANEVID = @pTanevId AND C_ERTEKELESTIPUSA = @pErtekelestipusaId AND (T_TANTARGY_OSSZES.C_FOTARGYE = 'T' OR C_ALTANTARGYKENTNYOMTATVANYBAN = 'T' )
|
||||
GROUP BY C_TANTARGYID;
|
||||
|
||||
--MULASZTÁS
|
||||
INSERT INTO @szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA) (
|
||||
SELECT CASE WHEN C_TIPUS = @pMulasztasTipusIdKeses THEN 'K' ELSE 'H' END AS TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, SUM(COALESCE(C_KESESPERCBEN, 0)) AS KESESPERC, COUNT(T_TANULOMULASZTAS_OSSZES.ID) AS MULASZTASOK_SZAMA
|
||||
FROM T_TANULOMULASZTAS_OSSZES
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES ON T_TANITASIORA_OSSZES.ID = T_TANULOMULASZTAS_OSSZES.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID = T_TANULOCSOPORT_OSSZES.C_TANULOID
|
||||
AND T_TANITASIORA_OSSZES.C_DATUM >= T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM AND (T_TANITASIORA_OSSZES.C_DATUM < T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL)
|
||||
INNER JOIN @osztalyoktanoraicsoportok AS OSZTALYOKTANORAICSOPORTOK ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALYOKTANORAICSOPORTOK.OSZTALYCSOPORTID
|
||||
WHERE T_TANULOMULASZTAS_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANULOMULASZTAS_OSSZES.TOROLT='F' AND T_TANITASIORA_OSSZES.TOROLT = 'F' AND T_TANITASIORA_OSSZES.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
|
||||
AND C_IGAZOLT IS NOT NULL AND T_TANULOMULASZTAS_OSSZES.C_TANEVID=@pTanevId AND T_TANULOMULASZTAS_OSSZES.C_TIPUS IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas) AND (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA NOT IN (@pNemMulasztaIgazolasTipusIds))
|
||||
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI
|
||||
);
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
INSERT INTO @osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
|
||||
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, 'F' AS C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + 'F' AS DESCR
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(KESESPERC) AS KESESPERC, SUM(KESESPERC)/45 AS KESESORA, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
|
||||
FROM @szurtMulasztas
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
|
||||
) AS T_SUM_MULASZTAS
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT
|
||||
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO @osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
|
||||
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + C_GYAKORLATI
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 60 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM @szurtMulasztas
|
||||
) AS T_SUM_MULASZTAS
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_GYAKORLATI, C_IGAZOLT
|
||||
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
END
|
||||
END
|
||||
|
||||
DECLARE @cols AS NVARCHAR(MAX);
|
||||
DECLARE @colsHeader AS NVARCHAR(MAX);
|
||||
DECLARE @query AS NVARCHAR(MAX);
|
||||
|
||||
SELECT OSZTALYID, TANTARGYID, /*COALESCE(CONVERT(NVARCHAR, ATLAG), '') AS*/ ATLAG
|
||||
INTO #tempErtekeles
|
||||
FROM @osztalyokErtekeles;
|
||||
|
||||
SELECT OSZTALYID, TANULOKSZAMA
|
||||
INTO #tempTanulokszama
|
||||
FROM @osztalyokTanulokszama;
|
||||
|
||||
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID) + ' AS ' + QUOTENAME(TANTARGYAK.TANTARGY_NEV),
|
||||
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID)
|
||||
FROM (
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_SORSZAM
|
||||
FROM @tantargyak
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
SET @query =
|
||||
'SELECT NEV AS [Osztályok], TANULOILETSZAM.TANULOKSZAMA AS [Tanulók száma], ' + @colsHeader + '
|
||||
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
|
||||
LEFT JOIN (
|
||||
SELECT OSZTALYID AS E_OSZTALYID, TANTARGYID, ATLAG
|
||||
FROM #tempErtekeles
|
||||
) AS ERTEKELES ON ERTEKELES.E_OSZTALYID = OSZTALYOK.OSZTALYID
|
||||
PIVOT (
|
||||
MAX(ATLAG)
|
||||
FOR TANTARGYID IN (' + @cols + ')
|
||||
) AS PIVOTTABLE
|
||||
LEFT JOIN #tempTanulokszama AS TANULOILETSZAM ON PIVOTTABLE.OSZTALYID = TANULOILETSZAM.OSZTALYID
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
SELECT * INTO #tempMulasztas
|
||||
FROM @osztalyokMulasztas;
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
SET @cols = 'HTF,KTF,HFF,KFF'
|
||||
SET @colsHeader = 'HTF AS [Igazolt hiányzás],KTF AS [Igazolt késés (óra)],HFF AS [Igazolatlan hiányzás],KFF AS [Igazolatlan késés (óra)]'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @cols = 'HTF,KTF,HFF,KFF,HTT,KTT,HFT,KFT'
|
||||
SET @colsHeader = 'HTF AS [Elméleti igazolt hiányzás],KTF AS [Elméleti igazolt késés (óra)],HFF AS [Elméleti igazolatlan hiányzás],KFF AS [Elméleti igazolatlan késés (óra)],HTT AS [Gyakorlati igazolt hiányzás],KTT AS [Gyakorlati igazolt késés (óra)],HFT AS [Gyakorlati igazolatlan hiányzás],KFT AS [Gyakorlati igazolatlan késés (óra)]'
|
||||
END
|
||||
SET @query =
|
||||
'SELECT ' + @colsHeader + '
|
||||
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
|
||||
LEFT JOIN (
|
||||
SELECT OSZTALYID AS M_OSZTALYID, MULASZTASOK_SZAMA, DESCR
|
||||
FROM #tempMulasztas
|
||||
) AS MULASZTAS ON MULASZTAS.M_OSZTALYID = OSZTALYOK.OSZTALYID
|
||||
PIVOT (
|
||||
MAX(MULASZTASOK_SZAMA)
|
||||
FOR DESCR IN (' + @cols + ')
|
||||
) AS PIVOTTABLE
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
IF OBJECT_ID('tempdb..#tempOsztalyok') IS NOT NULL DROP TABLE #tempOsztalyok
|
||||
IF OBJECT_ID('tempdb..#tempTanulokszama') IS NOT NULL DROP TABLE #tempTanulokszama
|
||||
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
|
||||
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue