139 lines
No EOL
5.8 KiB
Transact-SQL
139 lines
No EOL
5.8 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanulokMulasztasokReszletezese]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasokReszletezese]
|
|
@OsztalyId INT,
|
|
@TanevId INT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @Diakok TABLE (DiakId INT)
|
|
INSERT INTO @Diakok
|
|
SELECT
|
|
T_FELHASZNALO_OSSZES.ID
|
|
FROM T_FELHASZNALO_OSSZES
|
|
JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F') TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
|
WHERE T_FELHASZNALO_OSSZES.TOROLT='F'
|
|
AND T_FELHASZNALO_OSSZES.C_TANEVID = @TanevId
|
|
AND TANCSOPORT.C_OSZTALYCSOPORTID = @OsztalyId
|
|
order by T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
|
|
|
|
DECLARE @Mulasztasok TABLE (MulasztasId INT)
|
|
INSERT INTO @Mulasztasok
|
|
SELECT ID FROM T_MULASZTASTIPUS_OSSZES
|
|
WHERE ID != 1497
|
|
AND ID != 1498
|
|
AND ID != 1817
|
|
AND C_ALTANEVID = @TanevId
|
|
|
|
DECLARE @tmp TABLE (OSZTALY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD int, INT_VAROS NVARCHAR(255)
|
|
, INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255))
|
|
|
|
INSERT INTO @tmp
|
|
SELECT TOP 1 /*TODO:Tobb Osztaly*//*OM-1607*/
|
|
ocs.C_NEV
|
|
, i.C_NEV AS INT_NEV
|
|
,i.C_OMKOD AS INT_OMKOD
|
|
,i.C_VAROS AS INT_VAROS
|
|
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM
|
|
,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV
|
|
,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
|
|
JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F'
|
|
where
|
|
tcs.C_OSZTALYCSOPORTID = @OsztalyId
|
|
AND ocs.C_TANEVID = @TanevId
|
|
AND tcs.TOROLT = 'F'
|
|
AND ocs.TOROLT = 'F'
|
|
|
|
declare @TenylegesMulasztasok table (DiakId INT, MulasztasId int, NEV NVARCHAR(255), OSZTALY NVARCHAR(255), DATUM DATETIME
|
|
, ORA INT, MULASZTASJELLEG NVARCHAR(255), KESESPERC int, OSZTALYCSOPORT NVARCHAR(255)
|
|
, TANTARGY NVARCHAR(255), INT_NEV NVARCHAR(255), INT_OMKOD NVARCHAR(255), INT_VAROS NVARCHAR(255)
|
|
, INT_CIM NVARCHAR(255), INT_IGAZGATO_NEV NVARCHAR(255), OSZTFO_NEV NVARCHAR(255))
|
|
|
|
INSERT INTO @TenylegesMulasztasok
|
|
SELECT
|
|
f.Id
|
|
,tm.C_TIPUS
|
|
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV
|
|
,ocs.C_NEV AS OSZTALY
|
|
,tno.C_DATUM AS DATUM
|
|
,oo.C_ORASZAM AS ORA
|
|
,tm.C_TIPUS as MULASZTASJELLEG
|
|
,tm.C_KESESPERCBEN AS KESESPERC
|
|
,ocs.C_NEV AS OSZTALYCSOPORT
|
|
,tt.C_NEV AS TANTARGY
|
|
,i.C_NEV AS INT_NEV
|
|
,i.C_OMKOD AS INT_OMKOD
|
|
,i.C_VAROS AS INT_VAROS
|
|
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS INT_CIM
|
|
,i.C_IGAZGATONEVE AS INT_IGAZGATO_NEV
|
|
,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV AS OSZTFO_NEV
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND tcs.TOROLT = 'F'
|
|
JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_ORATANULOIID = tcs.C_TANULOID and tm.TOROLT = 'F'
|
|
LEFT JOIN T_TANITASIORA_OSSZES tno ON tno.ID = tm.C_TANITASIORAKID AND tno.TOROLT = 'F'
|
|
LEFT JOIN T_TANTARGY_OSSZES tt ON tt.ID = tno.C_TANTARGYID AND tt.TOROLT = 'F'
|
|
LEFT JOIN T_ORARENDIORA_OSSZES oo ON tno.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tno.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
|
|
LEFT OUTER JOIN T_FELHASZNALO_OSSZES osztf ON osztf.ID = o.C_OSZTALYFONOKID AND osztf.TOROLT = 'F'
|
|
WHERE
|
|
tcs.C_OSZTALYCSOPORTID = @OsztalyId
|
|
AND ocs.C_TANEVID = @TanevId
|
|
AND tcs.TOROLT = 'F'
|
|
AND ocs.TOROLT = 'F'
|
|
|
|
DECLARE @tmp2 TABLE (DiakId INT, MulasztasId INT, Cnt INT)
|
|
INSERT INTO @tmp2
|
|
SELECT
|
|
N.DiakId
|
|
,O.MulasztasId
|
|
,count(*) AS Cnt
|
|
FROM @Diakok N
|
|
CROSS JOIN @Mulasztasok O
|
|
JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId
|
|
GROUP BY N.DiakId,O.MulasztasId
|
|
|
|
SELECT
|
|
N.DiakId
|
|
,O.MulasztasId
|
|
,O.MulasztasId AS Mulasztas
|
|
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV AS NEV
|
|
,(select OSZTALY FROM @tmp) AS OSZTALY
|
|
,DATUM
|
|
,ORA
|
|
,T.MulasztasId AS MULASZTASJELLEG
|
|
,KESESPERC
|
|
,OSZTALYCSOPORT
|
|
,TANTARGY
|
|
,(SELECT INT_NEV FROM @tmp) AS INT_NEV
|
|
,(SELECT INT_OMKOD FROM @tmp) AS INT_OMKOD
|
|
,(SELECT INT_VAROS FROM @tmp) AS INT_VAROS
|
|
,(SELECT INT_CIM FROM @tmp) AS INT_CIM
|
|
,(SELECT INT_IGAZGATO_NEV FROM @tmp) AS INT_IGAZGATO_NEV
|
|
,(SELECT OSZTFO_NEV FROM @tmp) as OSZTFO_NEV
|
|
,isnull(Cntr.Cnt, 0) AS Cntr
|
|
,f.C_NYOMTATASINEV + ' ' + cast(N.DiakId as nvarchar) AS GROUPPARAMETER
|
|
FROM @Diakok N
|
|
CROSS JOIN @Mulasztasok O
|
|
LEFT JOIN @TenylegesMulasztasok T ON T.DiakId = N.DiakId AND T.MulasztasId = O.MulasztasId
|
|
JOIN T_FELHASZNALO_OSSZES f ON f.ID = N.DiakId AND f.TOROLT = 'F'
|
|
LEFT JOIN @tmp2 Cntr ON Cntr.DiakId = N.DiakId AND Cntr.MulasztasId = O.MulasztasId
|
|
ORDER BY f.C_NYOMTATASINEV
|
|
|
|
SELECT C_OSZTALYFONOKID PartnerID FROM T_OSZTALY_OSSZES
|
|
WHERE
|
|
T_OSZTALY_OSSZES.ID = @OsztalyId
|
|
AND T_OSZTALY_OSSZES.TOROLT='F'
|
|
AND T_OSZTALY_OSSZES.C_ALTANEVID = @TanevId
|
|
|
|
END
|
|
|
|
GO |