kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetOsztalyTanulokByOsztalyId.sql
2024-03-13 00:33:46 +01:00

55 lines
1.9 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetOsztalyTanulokByOsztalyId
GO
CREATE PROCEDURE uspGetOsztalyTanulokByOsztalyId
@pOsztalyAzonosito INT
AS
BEGIN
SET NOCOUNT ON;
SELECT Felhasznalo.ID AS KretaAzonosito
,Felhasznalo.C_VEZETEKNEV AS VezetekNev
,Felhasznalo.C_UTONEV AS KeresztNev
,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,ISNULL(Felhasznalo.C_ELOTAG, '') AS Elotag
,TanuloOsztaly.OsztalyKretaAzonosito
,TanuloOsztaly.Osztaly
,Felhasznalo.C_EGYEDIAZONOSITO AS EgyediAzonosito
,Felhasznalo.C_IDPEGYEDIAZONOSITO AS IdpEgyediAzonosito
FROM T_FELHASZNALO_OSSZES Felhasznalo
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = Felhasznalo.ID
AND Tanulo.TOROLT = 'F'
INNER JOIN (
SELECT TanuloCsoport.C_TANULOID AS TanuloId
,OsztalyCsoport.ID AS OsztalyKretaAzonosito
,OsztalyCsoport.C_NEV AS Osztaly
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND OsztalyCsoport.TOROLT = 'F'
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_BELEPESDATUM <= (
SELECT IIF(GETDATE() < C_ELSOTANITASINAP, C_ELSOTANITASINAP, GETDATE())
FROM T_TANEV_OSSZES
WHERE C_AKTIV = 'T'
AND TOROLT = 'F'
AND C_INTEZMENYID = TanuloCsoport.C_INTEZMENYID
)
AND (
TanuloCsoport.C_KILEPESDATUM IS NULL
OR TanuloCsoport.C_KILEPESDATUM > GETDATE()
)
WHERE EXISTS (
SELECT 1
FROM T_OSZTALY_OSSZES Osztaly
INNER JOIN T_OSZTALYCSOPORT_OSSZES InnerOsztalyCsoport ON InnerOsztalyCsoport.ID = Osztaly.ID
AND InnerOsztalyCsoport.TOROLT = 'F'
WHERE Osztaly.ID = OsztalyCsoport.ID
AND Osztaly.TOROLT = 'F'
AND Osztaly.ID = @pOsztalyAzonosito
)
) TanuloOsztaly ON TanuloOsztaly.TanuloId = Felhasznalo.ID
WHERE Felhasznalo.TOROLT = 'F'
END
GO