kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20200407225819_KRETA2_1074/uspGetKozossegiSzolgalatokData.sql
2024-03-13 00:33:46 +01:00

67 lines
3.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokData
GO
CREATE PROCEDURE uspGetKozossegiSzolgalatokData
@pIntezmenyId int
,@pOsztalyCsoportId int
,@pIdoszakKezdete datetime
,@pIdoszakVege datetime
,@pOsszesOraszamKezdete int
,@pOsszesOraszamVege int
,@pTanuloNeve nvarchar(250)
,@pAnyjaNeve nvarchar(250)
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM (
SELECT
currenttanulo.TanuloId as ID
,currenttanulo.TanuloId as TanuloId
,currenttanulo.TanuloNev as TanuloNev
,IIF(currenttanulo.Nevsorrend = 'T',
currenttanulo.TanuloUtonev + ' ' + currenttanulo.TanuloVezeteknev,
currenttanulo.TanuloVezeteknev + ' ' + currenttanulo.TanuloUtonev) as TanuloNevElotagNelkul
,currenttanulo.AnyjaNeve as AnyjaNeve
,currenttanulo.SzuletesiIdo as SzuletesiIdo
,currenttanulo.OsztalyNev as OsztalyNev
,ISNULL(SUM(kozossegiszolgalat.C_ORASZAM),0) as OsszesOraszam
FROM T_FELHASZNALO_OSSZES tanulo
LEFT JOIN (
SELECT DISTINCT
tanulo.C_OKTATASIAZONOSITO as OktatasiAzonosito
,tanulo.ID as TanuloId
,tanulo.C_NYOMTATASINEV as TanuloNev
,tanulo.C_NEVSORREND as Nevsorrend
,tanulo.C_VEZETEKNEV as TanuloVezeteknev
,tanulo.C_UTONEV as TanuloUtonev
,tanulo.C_ANYJANEVE as AnyjaNeve
,tanulo.C_SZULETESIDATUM as SzuletesiIdo
,osztalycsoport.C_NEV as OsztalyNev
FROM T_FELHASZNALO tanulo
LEFT JOIN T_TANULOCSOPORT tanulocsoport ON tanulocsoport.C_TANULOID = tanulo.ID
AND tanulocsoport.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT osztalycsoport ON osztalycsoport.ID = tanulocsoport.C_OSZTALYCSOPORTID
AND osztalycsoport.TOROLT = 'F'
WHERE tanulo.TOROLT = 'F'
AND osztalycsoport.ID = @pOsztalyCsoportId
) currenttanulo ON currenttanulo.OktatasiAzonosito IS NOT NULL
AND (@pTanuloNeve IS NULL OR currenttanulo.TanuloNev LIKE ('%'+ @pTanuloNeve +'%'))
AND (@pAnyjaNeve IS NULL OR currenttanulo.AnyjaNeve LIKE ('%'+ @pAnyjaNeve +'%'))
LEFT JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES kozossegiszolgalat ON kozossegiszolgalat.C_TANULOID = Tanulo.ID
AND kozossegiszolgalat.C_INTEZMENYID = @pIntezmenyId
AND (@pIdoszakKezdete IS NULL OR kozossegiszolgalat.C_INTERVALLUMKEZDETE >= @pIdoszakKezdete)
AND (@pIdoszakVege IS NULL OR kozossegiszolgalat.C_INTERVALLUMVEGE <= @pIdoszakVege)
AND kozossegiszolgalat.TOROLT = 'F'
WHERE tanulo.C_OKTATASIAZONOSITO = currenttanulo.OktatasiAzonosito
AND tanulo.C_INTEZMENYID = @pIntezmenyId
AND tanulo.TOROLT = 'F'
GROUP BY currenttanulo.TanuloId, currenttanulo.TanuloNev, currenttanulo.Nevsorrend, currenttanulo.TanuloVezeteknev,
currenttanulo.TanuloUtonev, currenttanulo.AnyjaNeve, currenttanulo.SzuletesiIdo, currenttanulo.OsztalyNev
) result
WHERE (@pOsszesOraszamKezdete IS NULL OR @pOsszesOraszamKezdete >= result.OsszesOraszam)
AND (@pOsszesOraszamVege IS NULL OR @pOsszesOraszamVege <= result.OsszesOraszam)
ORDER BY result.TanuloNevElotagNelkul ASC
END
GO