kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20181206150213_OM_1679/fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent.sql
2024-03-13 00:33:46 +01:00

34 lines
2.2 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent
END
GO
CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@tanevId INT, @osztalyCsoportId INT, @atsoroltTanuloOrak BIT = 1)
RETURNS TABLE
RETURN (
SELECT COUNT(1) AS Orakszama, TANULO.TanuloId, TANTARGY.ID AS TantargyId,
ISNULL(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TantargyNev, C_FOTARGYE AS Fotargye, C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye, C_GYAKORLATI AS Gyakorlati
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') AS TANULO
INNER JOIN T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT ON TANULOCSOPORT.C_TANULOID = TANULO.TanuloId
INNER JOIN T_TANITASIORA_OSSZES AS TANITASIORA ON TANITASIORA.C_OSZTALYCSOPORTID = TANULOCSOPORT.C_OSZTALYCSOPORTID AND TANITASIORA.C_DATUM >= TANULOCSOPORT.C_BELEPESDATUM AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANITASIORA.C_DATUM <= TANULOCSOPORT.C_KILEPESDATUM)
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = TANITASIORA.C_OSZTALYCSOPORTID
and OSZTALYCSOPORT.C_FELADATKATEGORIAID = (SELECT tev.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV tev WHERE tev.ID = OSZTALYCSOPORT.C_TANEVID)
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = TANITASIORA.C_TANTARGYID
INNER JOIN T_NAPTARIHET_OSSZES AS NAPTARIHETEK ON TANITASIORA.C_DATUM BETWEEN NAPTARIHETEK.C_HETKEZDONAPJA AND NAPTARIHETEK.C_HETUTOLSONAPJA
WHERE
TANULOCSOPORT.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND OSZTALYCSOPORT.TOROLT = 'F' AND TANTARGY.TOROLT = 'F'
AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
AND TANITASIORA.C_MEGTARTOTT = 'T'
AND NaptariHetek.C_TANEVID = @tanevId
AND (@atsoroltTanuloOrak = 1 OR TANITASIORA.C_DATUM >= TANULO.BelepesDatum )
AND (TANULO.KilepesDatum IS NULL OR TANITASIORA.C_DATUM <= TANULO.KilepesDatum)
GROUP BY TANULO.TanuloId, TANTARGY.ID, C_GYAKORLATI, TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
)
GO