57 lines
No EOL
3.2 KiB
Transact-SQL
57 lines
No EOL
3.2 KiB
Transact-SQL
DROP FUNCTION IF EXISTS fnGetDokumentumKozossegiSzolgalatOsztalyonkent
|
|
GO
|
|
|
|
CREATE FUNCTION fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@tanevId int, @osztalyId int, @idegenNyelvId int)
|
|
RETURNS TABLE
|
|
RETURN (
|
|
SELECT
|
|
tk.ID AS KozossegiSzolgalatId
|
|
,tk.C_TANEVID AS KozossegiSzolgalatTanevId
|
|
,currentTanulo.TanuloNev AS TanuloNev
|
|
,currentTanulo.TanuloId AS TanuloId
|
|
,currentTanulo.TanuloCsoportId AS TanuloCsoportId
|
|
,currentTanulo.OktatasiAzonosito AS TanuloOktAzon
|
|
,FORMAT(C_INTERVALLUMKEZDETE, 'yyyy. MM. dd') + ' -' + char(13) + char(10) + FORMAT(C_INTERVALLUMVEGE, 'yyyy. MM. dd') AS Datum
|
|
,tk.C_MEGJEGYZES AS Megjegyzes
|
|
,tkny.C_MEGJEGYZES AS MegjegyzesIdegenNyelven
|
|
,tk.C_ORASZAM AS Oraszam
|
|
,tk.C_TELJESITESIHELYE AS TeljesitesHelye
|
|
,feljegyzo.C_NYOMTATASINEV AS FeljegyzoNeve
|
|
,tipus.C_NAME AS Tipus
|
|
,tk.C_INTERVALLUMKEZDETE AS IntervallumKezdete
|
|
,tk.C_INTERVALLUMVEGE AS IntervallumVege
|
|
,tipusNy.C_NAME AS TipusIdegenNyelven
|
|
,tkny.C_TELJESITESIHELYE AS TeljesitesHelyeIdegenNyelven
|
|
,feljegyzo.C_ELOTAG AS FeljegyzoNevElotag
|
|
,feljegyzo.C_VEZETEKNEV AS FeljegyzoNevVezeteknev
|
|
,feljegyzo.C_UTONEV AS FeljegyzoNevUtonev
|
|
FROM T_FELHASZNALO_OSSZES tanulo
|
|
INNER JOIN (
|
|
SELECT
|
|
f.C_OKTATASIAZONOSITO as OktatasiAzonosito
|
|
,f.ID as TanuloId
|
|
,f.C_NYOMTATASINEV as TanuloNev
|
|
,tanulocsoport.ID as TanuloCsoportId
|
|
,CASE WHEN (SELECT C_AKTIV FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F') = 'T'
|
|
THEN 1
|
|
ELSE (SELECT C_SORSZAM FROM T_TANEV_OSSZES WHERE ID = tanulocsoport.C_TANEVID AND TOROLT = 'F')
|
|
END as IsAktivTanevOrTanevSorszama
|
|
FROM T_FELHASZNALO_OSSZES f
|
|
CROSS APPLY (
|
|
SELECT TOP 1
|
|
ID
|
|
,C_TANEVID
|
|
FROM T_TANULOCSOPORT_OSSZES subTanuloCsoport
|
|
WHERE subTanuloCsoport.TOROLT = 'F' AND subTanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId AND subTanuloCsoport.C_TANULOID = f.ID
|
|
ORDER BY ISNULL(subTanuloCsoport.C_KILEPESDATUM, '22000101') DESC
|
|
) tanulocsoport
|
|
WHERE f.TOROLT = 'F'
|
|
) currentTanulo ON tanulo.C_OKTATASIAZONOSITO = currentTanulo.OktatasiAzonosito
|
|
INNER JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES tk ON tk.C_TANULOID = Tanulo.ID AND tk.TOROLT = 'F'
|
|
AND (currentTanulo.IsAktivTanevOrTanevSorszama = 1 OR tk.C_TANEVID IN (SELECT ID FROM T_TANEV_OSSZES WHERE C_SORSZAM <= IsAktivTanevOrTanevSorszama AND C_INTEZMENYID = tk.C_INTEZMENYID AND TOROLT = 'F'))
|
|
LEFT JOIN T_TANULOKOZOSSEGISZOLGALATNYEL_OSSZES tkny ON tkny.C_TANULOKOZOSSEGISZOLGALATID = tk.ID AND tkny.C_NYELVID = @idegenNyelvId AND tkny.TOROLT = 'F' AND tkny.C_TANEVID = @tanevId
|
|
LEFT JOIN T_FELHASZNALO_OSSZES feljegyzo ON feljegyzo.ID = tk.C_FELJEGYZOID AND feljegyzo.TOROLT = 'F'
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES tipus ON tipus.Id = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipus.C_TANEVID = tk.C_TANEVID
|
|
LEFT JOIN T_DICTIONARYITEMBASENYELV_OSSZES tipusNy ON tipusNy.ID = tk.C_KOZOSSEGISZOLGALATTIPUSA AND tipusNy.C_NYELVID = @idegenNyelvId AND tipusNy.C_TANEVID = @tanevId AND tipusNy.TOROLT = 'F'
|
|
WHERE tanulo.TOROLT = 'F'
|
|
) |