41 lines
No EOL
2.3 KiB
Transact-SQL
41 lines
No EOL
2.3 KiB
Transact-SQL
IF OBJECT_ID('fnGetDokumentumKapcsolodoOsztalycsoportok') IS NOT NULL BEGIN
|
|
DROP FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok
|
|
END
|
|
GO
|
|
CREATE FUNCTION [fnGetDokumentumKapcsolodoOsztalycsoportok] (@osztalyCsoportId int, @pTanoraiCsoportTipusIds int)
|
|
RETURNS TABLE
|
|
RETURN (
|
|
SELECT @osztalyCsoportId AS ID, 'OsztalycsoportOraja' AS OKA
|
|
UNION
|
|
SELECT ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES
|
|
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND C_TIPUSA IN (@pTanoraiCsoportTipusIds)
|
|
UNION
|
|
SELECT DISTINCT tcs.C_OSZTALYCSOPORTID, 'TanuloMasOra' AS OKA
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
INNER JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.ID = tcs.C_OSZTALYCSOPORTID
|
|
INNER JOIN (
|
|
SELECT DISTINCT x.C_TANULOID, x.C_BELEPESDATUM, x.C_KILEPESDATUM
|
|
FROM T_TANULOCSOPORT_OSSZES x
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = x.C_OSZTALYCSOPORTID
|
|
INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
|
WHERE x.C_OSZTALYCSOPORTID = @osztalyCsoportId AND (x.C_KILEPESDATUM > T_TANEV_OSSZES.C_KEZDONAP OR x.C_KILEPESDATUM IS NULL)
|
|
) AS OSZTALY_TANULO ON OSZTALY_TANULO.C_TANULOID = tcs.C_TANULOID AND tcs.C_BELEPESDATUM >= OSZTALY_TANULO.C_BELEPESDATUM AND (OSZTALY_TANULO.C_KILEPESDATUM IS NULL OR tcs.C_BELEPESDATUM < OSZTALY_TANULO.C_KILEPESDATUM)
|
|
WHERE tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId
|
|
AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @osztalyCsoportId)
|
|
AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT C_OSZTALYBONTASID AS ID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL)
|
|
AND tcs.C_OSZTALYCSOPORTID NOT IN (
|
|
SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID IN (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
|
) AND C_TIPUSA IN (@pTanoraiCsoportTipusIds)
|
|
UNION
|
|
SELECT C_OSZTALYBONTASID AS ID, 'OsztalybontottOra2' AS OKA
|
|
FROM T_CSOPORT_OSSZES
|
|
WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND C_TIPUSA IN (@pTanoraiCsoportTipusIds)
|
|
UNION
|
|
SELECT ID, 'OsztalybontottOra3' AS OKA
|
|
FROM T_CSOPORT_OSSZES
|
|
WHERE C_OSZTALYBONTASID IN (
|
|
SELECT C_OSZTALYBONTASID
|
|
FROM T_CSOPORT_OSSZES
|
|
WHERE ID = @osztalyCsoportId
|
|
) AND ID <> @osztalyCsoportId AND C_TIPUSA IN (@pTanoraiCsoportTipusIds)
|
|
) |