95 lines
4.1 KiB
Transact-SQL
95 lines
4.1 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetKozossegiSzolgalatokData
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetKozossegiSzolgalatokData
|
|
@pIntezmenyId int
|
|
,@pOsztalyCsoportIdList nvarchar(max)
|
|
,@pIdoszakKezdete datetime
|
|
,@pIdoszakVege datetime
|
|
,@pOsszesOraszamKezdete int
|
|
,@pOsszesOraszamVege int
|
|
,@pTanuloNeve nvarchar(250)
|
|
,@pAnyjaNeve nvarchar(250)
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@sql nvarchar(max)
|
|
|
|
SET @sql = N'
|
|
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
|
|
,tanulo.C_OKTATASIAZONOSITO as OktatasiAzonosito
|
|
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_OSSZES tanulo
|
|
LEFT JOIN T_TANULOCSOPORT_OSSZES tanulocsoport ON tanulocsoport.C_TANULOID = tanulo.ID
|
|
AND tanulocsoport.TOROLT = ''F''
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalycsoport ON osztalycsoport.ID = tanulocsoport.C_OSZTALYCSOPORTID
|
|
AND osztalycsoport.TOROLT = ''F''
|
|
WHERE tanulo.TOROLT = ''F''
|
|
' + IIF(@pOsztalyCsoportIdList IS NOT NULL, 'AND osztalycsoport.ID IN (' + @pOsztalyCsoportIdList + ')', '') + N'
|
|
) currenttanulo ON currenttanulo.OktatasiAzonosito IS NOT NULL
|
|
' + IIF(@pTanuloNeve IS NOT NULL, 'AND currenttanulo.TanuloNev LIKE (''%''+ @pTanuloNeve +''%'')', '') + N'
|
|
' + IIF(@pAnyjaNeve IS NOT NULL, 'AND currenttanulo.AnyjaNeve LIKE (''%''+ @pAnyjaNeve +''%'')', '') + N'
|
|
LEFT JOIN T_TANULOKOZOSSEGISZOLGALAT_OSSZES kozossegiszolgalat ON kozossegiszolgalat.C_TANULOID = Tanulo.ID
|
|
AND kozossegiszolgalat.C_INTEZMENYID = @pIntezmenyId
|
|
' + IIF(@pIdoszakKezdete IS NOT NULL, 'AND kozossegiszolgalat.C_INTERVALLUMKEZDETE >= @pIdoszakKezdete', '') + N'
|
|
' + IIF(@pIdoszakVege IS NOT NULL, 'AND kozossegiszolgalat.C_INTERVALLUMVEGE <= @pIdoszakVege', '') + N'
|
|
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, tanulo.C_OKTATASIAZONOSITO
|
|
) result
|
|
WHERE 1 = 1
|
|
' + IIF(@pOsszesOraszamKezdete IS NOT NULL, 'AND @pOsszesOraszamKezdete >= result.OsszesOraszam', '') + N'
|
|
' + IIF(@pOsszesOraszamVege IS NOT NULL, 'AND @pOsszesOraszamVege <= result.OsszesOraszam', '') + N'
|
|
ORDER BY result.TanuloNevElotagNelkul ASC'
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pIntezmenyId int
|
|
,@pOsztalyCsoportIdList nvarchar(max)
|
|
,@pIdoszakKezdete datetime
|
|
,@pIdoszakVege datetime
|
|
,@pOsszesOraszamKezdete int
|
|
,@pOsszesOraszamVege int
|
|
,@pTanuloNeve nvarchar(250)
|
|
,@pAnyjaNeve nvarchar(250)'
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pOsztalyCsoportIdList = @pOsztalyCsoportIdList
|
|
,@pIdoszakKezdete = @pIdoszakKezdete
|
|
,@pIdoszakVege = @pIdoszakVege
|
|
,@pOsszesOraszamKezdete = @pOsszesOraszamKezdete
|
|
,@pOsszesOraszamVege = @pOsszesOraszamVege
|
|
,@pTanuloNeve = @pTanuloNeve
|
|
,@pAnyjaNeve = @pAnyjaNeve
|
|
|
|
END
|
|
|
|
GO
|
|
|