48 lines
No EOL
2.9 KiB
Transact-SQL
48 lines
No EOL
2.9 KiB
Transact-SQL
IF OBJECT_ID('fnGetDokumentumTanuloMentessegei') IS NOT NULL BEGIN
|
|
DROP FUNCTION fnGetDokumentumTanuloMentessegei
|
|
END
|
|
GO
|
|
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE FUNCTION fnGetDokumentumTanuloMentessegei (@tanevId INT, @osztalyId INT, @nyomtatvanyNyelvEnum INT = 0)
|
|
RETURNS TABLE
|
|
RETURN (
|
|
|
|
SELECT
|
|
OsztalyTanuloi.TanuloId TanuloId
|
|
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
|
|
,mentesseg.mentessegOka MentessegOka
|
|
,mentesseg.tantargyNev + ' ' + ISNULL(IIF(mentesseg = '', '', '(' + LEFT(mentesseg, LEN(mentesseg)- 1) + ')'),' ') TantargyNev
|
|
,mentesseg.tantargyNev TantargyNevMentessegNelkul
|
|
,C_KEZDETE Kezdete
|
|
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
|
|
INNER JOIN (SELECT DISTINCT
|
|
mentesseg.C_TANULOID tanuloId
|
|
,s.TanuloCsoportId
|
|
,CASE
|
|
WHEN @nyomtatvanyNyelvEnum = 0 THEN
|
|
IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV)
|
|
WHEN @nyomtatvanyNyelvEnum = 1 THEN
|
|
ISNULL(C_NEMETNEV, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
|
|
WHEN @nyomtatvanyNyelvEnum = 2 THEN
|
|
ISNULL(C_ANGOLNEV, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) )
|
|
END tantargyNev
|
|
,CASE
|
|
WHEN C_KEZDETE IS NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA
|
|
WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
|
|
WHEN C_KEZDETE IS NULL AND C_VEGE IS NOT NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')'
|
|
WHEN C_KEZDETE IS NOT NULL AND C_VEGE IS NULL THEN mentesseg.C_MENTESSEGOKA + ' ' + '(a felmentés érvényessége: ' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + ')'
|
|
END AS mentessegOka
|
|
,IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
|
|
,mentesseg.C_KEZDETE
|
|
FROM T_TANULOMENTESSEG_OSSZES mentesseg
|
|
INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID
|
|
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s ON s.TanuloId = mentesseg.C_TANULOID
|
|
WHERE
|
|
mentesseg.TOROLT='F'
|
|
) mentesseg ON OsztalyTanuloi.TanuloId = mentesseg.TANULOID AND OsztalyTanuloi.TanuloCsoportId = mentesseg.TanuloCsoportId
|
|
) |