IF OBJECT_ID('dbo.sp_GetMulasztasokNaploNezetData') IS NOT NULL BEGIN DROP PROCEDURE dbo.sp_GetMulasztasokNaploNezetData END GO CREATE PROCEDURE dbo.sp_GetMulasztasokNaploNezetData @pOsztalyCsoportId INT ,@pDatum DATE AS BEGIN DECLARE @tempTable TABLE( TanitasiOraId INT NOT NULL, OsztalyCsoportId INT NOT NULL, OsztalyCsoportNev NVARCHAR(255) NOT NULL, OsztalyNev NVARCHAR(255) NOT NULL, TantargyId INT NOT NULL, TantargyNev NVARCHAR(255) NOT NULL, TanarId INT NOT NULL, TanarNev NVARCHAR(255) NOT NULL, OraSorszam INT NULL, OraKezdete DATETIME NULL ); INSERT INTO @tempTable SELECT tn.ID AS TanitasiOraId ,kocs.ID AS OsztalyCsoportId ,ocs.C_NEV AS OsztalyCsoportNev ,o.C_NEV AS OsztalyNev ,tt.ID AS TantargyId ,tt.C_NEV AS TantargyNev ,fa.ID AS TanarId ,fa.C_NYOMTATASINEV AS TanarNev ,IIF(tn.C_CSENGETESIRENDORAID IS NOT NULL, tn.C_ORASZAM, NULL) AS OraSorszam ,IIF(tn.C_CSENGETESIRENDORAID IS NULL, tn.C_ORAKEZDETE, NULL) AS OraKezdete FROM T_TANITASIORA tn INNER JOIN dbo.fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pDatum, @pDatum) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY tt ON tt.ID = tn.C_TANTARGYID AND tt.TOROLT = 'F' INNER JOIN T_FELHASZNALO fa ON fa.ID = tn.C_ORATULAJDONOSID AND fa.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = kocs.ID AND ocs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT o ON o.ID = @pOsztalyCsoportId AND o.TOROLT = 'F' WHERE CAST(tn.C_DATUM AS DATE) = CAST(@pDatum AS DATE) AND tn.C_MEGTARTOTT = 'T' AND tn.TOROLT = 'F' SELECT tcs.C_TANULOID AS TanuloId ,ft.C_NYOMTATASINEV AS TanuloNev ,ft.C_ANYJANEVE AS AnyjaNeve ,ft.C_SZULETESIDATUM AS SzuletesiIdo ,tbl.OsztalyCsoportId ,tbl.OsztalyCsoportNev ,tbl.OsztalyNev ,tbl.TantargyId ,tbl.TantargyNev ,tbl.TanarId ,tbl.TanarNev ,tbl.OraSorszam ,tbl.OraKezdete ,tbl.TanitasiOraId ,tm.ID AS MulasztasId ,tm.C_TIPUS AS MulasztasTipus ,tm.C_IGAZOLT AS IsIgazolt ,tm.C_IGAZOLASTIPUSA AS IgazolasTipus ,tm.C_MEGJEGYZES AS Megjegyzes ,tm.C_KESESPERCBEN AS KesesPercben -- , FROM ( SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT WHERE C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND C_BELEPESDATUM <= @pDatum AND (C_KILEPESDATUM > @pDatum OR C_KILEPESDATUM IS NULL) AND TOROLT = 'F' AND C_TANULOID IN ( SELECT C_TANULOID FROM T_TANULOCSOPORT WHERE T_TANULOCSOPORT.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM @tempTable) AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDatum AND (T_TANULOCSOPORT.C_KILEPESDATUM > @pDatum OR T_TANULOCSOPORT.C_KILEPESDATUM IS NULL) ) ) tcs CROSS JOIN @tempTable tbl INNER JOIN T_FELHASZNALO ft ON tcs.C_TANULOID = ft.ID AND ft.TOROLT = 'F' LEFT JOIN T_TANULOMULASZTAS tm ON tcs.C_TANULOID = tm.C_ORATANULOIID AND tm.C_TANITASIORAKID = tbl.TanitasiOraId AND tm.TOROLT = 'F' WHERE tcs.C_TANULOID IN ( SELECT C_TANULOID FROM T_TANULOCSOPORT WHERE tbl.OsztalyCsoportId = T_TANULOCSOPORT.C_OSZTALYCSOPORTID AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDatum AND (T_TANULOCSOPORT.C_KILEPESDATUM > @pDatum OR T_TANULOCSOPORT.C_KILEPESDATUM IS NULL) ) ORDER BY ft.C_NYOMTATASINEV END GO