kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20180507123815_KRETA_5621/fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet.sql
2024-03-13 00:33:46 +01:00

38 lines
2.1 KiB
Transact-SQL

IF OBJECT_ID('fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet (@tanevId int, @osztalyId int, @tanitasiHetekSzamaVegzos int, @tanitasiHetekSzamaNemVegzos int)
RETURNS TABLE
RETURN (
SELECT
C_TANULOID TanuloId
, ISNULL(t.C_FOTARGYID, t.ID) TantargyId
, SUM(fog.C_ORASZAM) * IIF((SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos) Oraszam
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND fog.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES t on t.ID = fog.C_TANTARGYID AND (t.C_FOTARGYE = 'T' OR t.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
WHERE
tcs.C_TANULOID IN ( SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') )
AND ((tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = @tanevId
AND ISNULL(tcs.C_KILEPESDATUM, IIF(
(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T',
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395) --nem végzős
)
)
>= IIF(
(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T',
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395) --nem végzős
)
GROUP BY C_TANULOID, ISNULL(t.C_FOTARGYID, t.ID)
)