init
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
IF OBJECT_ID('[dbo].[sp_GetTanulokMulasztasaiKesesei]') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
|
||||
@intezmenyId int,
|
||||
@tanevId int,
|
||||
@osztalyCsoportId int,
|
||||
@kesesTipus int,
|
||||
@elmeletiOraPercben int = 45,
|
||||
@gyakorlatiOraPercben int = 60
|
||||
AS BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
DECLARE @osztalyCsoportNev nvarchar(200)
|
||||
(SELECT @osztalyCsoportNev = C_NEV FROM T_OSZTALYCSOPORT WHERE ID = @osztalyCsoportId)
|
||||
SELECT
|
||||
m.tanuloId AS TanuloId
|
||||
,fh.C_NYOMTATASINEV AS TanuloNev
|
||||
,fh.C_SZULETESIDATUM AS SzuletesiIdo
|
||||
,fh.C_ANYJANEVE AS AnyjaNeve
|
||||
,@osztalyCsoportNev AS OsztCsopNev
|
||||
,ISNULL(m.[hianyzasIgazolandoTanorai], 0) AS TanoraiHianyzasIgazolando
|
||||
,ISNULL(m.[hianyzasIgazolandoTanoranKivuli], 0) AS TanoranKivuliHianyzasIgazolando
|
||||
,ISNULL(m.[hianyzasIgazoltTanorai], 0) AS TanoraiHianyzasIgazolt
|
||||
,ISNULL(m.[hianyzasIgazoltTanoranKivuli], 0) AS TanoranKivuliHianyzasIgazolt
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanorai], 0) AS TanoraiHianyzasIgazolatlan
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanoranKivuli], 0) AS TanoranKivuliHianyzasIgazolatlan
|
||||
,ISNULL(m.[kesesIgazolandoTanorai], 0) AS TanoraiKesesDarabszamIgazolando
|
||||
,ISNULL(m.[kesesIgazoltTanorai], 0) AS TanoraiKesesDarabszamIgazolt
|
||||
,ISNULL(m.[kesesIgazolatlanTanorai], 0) AS TanoraiKesesDarabszamIgazolatlan
|
||||
,ISNULL(k.[kesesIgazolandoTanoraiPerc], 0) AS TanoraiKesesIgazolandoPerc
|
||||
,ISNULL(k.[kesesIgazoltTanoraiPerc], 0) AS TanoraiKesesIgazoltPerc
|
||||
,ISNULL(k.[kesesIgazolatlanTanoraiPerc], 0) AS TanoraiKesesIgazolatlanPerc
|
||||
,ISNULL(kp.[kesesIgazolandoTanoraiPluszOra], 0) AS SzamitottKesesIgazolando
|
||||
,ISNULL(kp.[kesesIgazoltTanoraiPluszOra], 0) AS SzamitottKesesIgazolt
|
||||
,ISNULL(kp.[kesesIgazolatlanTanoraiPluszOra], 0) AS SzamitottKesesIgazolatlan
|
||||
FROM (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[hianyzasIgazolandoTanorai]
|
||||
,[hianyzasIgazolandoTanoranKivuli]
|
||||
,[hianyzasIgazoltTanorai]
|
||||
,[hianyzasIgazoltTanoranKivuli]
|
||||
,[hianyzasIgazolatlanTanorai]
|
||||
,[hianyzasIgazolatlanTanoranKivuli]
|
||||
,[kesesIgazolandoTanorai]
|
||||
,[kesesIgazoltTanorai]
|
||||
,[kesesIgazolatlanTanorai]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END AS piv
|
||||
,cnt
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId,
|
||||
m.C_TIPUS mulasztasTipus,
|
||||
m.C_IGAZOLT isIgazolt,
|
||||
IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F') AS isTanorai,
|
||||
COUNT(1) AS cnt
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE m.C_INTEZMENYID = @intezmenyId AND m.C_TANEVID = @tanevId
|
||||
AND m.Torolt ='F'
|
||||
AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
|
||||
GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, IIF(cs.ID IS NULL OR cs.C_TIPUSA = 1034, 'T', 'F')
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(cnt)
|
||||
FOR piv IN
|
||||
([hianyzasIgazolandoTanorai], [hianyzasIgazolandoTanoranKivuli], [hianyzasIgazoltTanorai], [hianyzasIgazoltTanoranKivuli], [hianyzasIgazolatlanTanorai], [hianyzasIgazolatlanTanoranKivuli], [kesesIgazolandoTanorai], [kesesIgazoltTanorai], [kesesIgazolatlanTanorai])
|
||||
) AS pvt
|
||||
) m
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPerc]
|
||||
,[kesesIgazoltTanoraiPerc]
|
||||
,[kesesIgazolatlanTanoraiPerc]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPerc' AS piv
|
||||
,kesesPercben
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,SUM(m.C_KESESPERCBEN) AS kesesPercben
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE m.C_INTEZMENYID = @intezmenyId
|
||||
AND m.C_TANEVID = @tanevId
|
||||
AND m.Torolt ='F'
|
||||
AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
|
||||
AND m.C_TIPUS = 1499
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesPercben)
|
||||
FOR piv IN
|
||||
([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
|
||||
) AS pvt
|
||||
) k ON k.tanuloId = m.tanuloId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPluszOra]
|
||||
,[kesesIgazoltTanoraiPluszOra]
|
||||
,[kesesIgazolatlanTanoraiPluszOra]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPluszOra' AS piv
|
||||
,kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
xx.tanuloId
|
||||
,xx.isIgazolt
|
||||
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
--,tn.C_FOGLALKOZASID AS foglalkozasId
|
||||
,t.C_GYAKORLATI AS isGyakorlati
|
||||
,SUM(m.C_KESESPERCBEN) AS keses
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE m.C_INTEZMENYID = @intezmenyId AND m.C_TANEVID = @tanevId
|
||||
AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
|
||||
AND m.C_TIPUS = 1499
|
||||
AND m.TOROLT = 'F'
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT/*, tn.C_FOGLALKOZASID*/, t.C_GYAKORLATI
|
||||
) xx
|
||||
GROUP BY tanuloId, xx.isIgazolt
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesOraban)
|
||||
FOR piv IN
|
||||
([kesesIgazolandoTanoraiPluszOra], [kesesIgazoltTanoraiPluszOra], [kesesIgazolatlanTanoraiPluszOra])
|
||||
) AS pvt
|
||||
) kp ON m.tanuloId = kp.tanuloId
|
||||
INNER JOIN T_FELHASZNALO fh ON fh.ID = m.tanuloId
|
||||
END
|
||||
|
||||
|
||||
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPluszOra]
|
||||
,[kesesIgazoltTanoraiPluszOra]
|
||||
,[kesesIgazolatlanTanoraiPluszOra]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPluszOra' AS piv
|
||||
,kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
xx.tanuloId
|
||||
,xx.isIgazolt
|
||||
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN 45 ELSE 60 END)) AS kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
--,tn.C_FOGLALKOZASID AS foglalkozasId
|
||||
,t.C_GYAKORLATI AS isGyakorlati
|
||||
,SUM(m.C_KESESPERCBEN) AS keses
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE m.C_INTEZMENYID = @intezmenyId AND m.C_TANEVID = @tanevId
|
||||
AND EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES tcs WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.C_TANULOID = m.C_ORATANULOIID AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL))
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA = 1034)
|
||||
AND m.C_TIPUS = 1499
|
||||
AND m.TOROLT = 'F'
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT, t.C_GYAKORLATI
|
||||
) xx
|
||||
GROUP BY tanuloId, xx.isIgazolt
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesOraban)
|
||||
FOR piv IN
|
||||
([kesesIgazolandoTanoraiPluszOra], [kesesIgazoltTanoraiPluszOra], [kesesIgazolatlanTanoraiPluszOra])
|
||||
) AS pvt
|
||||
GO
|
||||
|
Reference in New Issue
Block a user