38 lines
2.1 KiB
Transact-SQL
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)
|
|
)
|