kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetMulasztasokNaploNezetData.sql
2024-03-13 00:33:46 +01:00

114 lines
3.2 KiB
Transact-SQL

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