104 lines
4.6 KiB
Transact-SQL
104 lines
4.6 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetSzervezetData
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetSzervezetData
|
|
@pIntezmenyId int
|
|
,@pTanevId int
|
|
,@pSzervezetId int = NULL
|
|
,@pAdatokHalmaza int = 1 -- 0: megadott szervezet és alszervezetei, 1: megadott szervezet (SzervezetId = NULL esetén az ősszes székhely), 2: megadott szervezet alszervezetei
|
|
,@pNev nvarchar(255) = NULL
|
|
,@pAzonosito nvarchar(255) = NULL
|
|
,@pSzervezetCime nvarchar(255) = NULL
|
|
,@pTanulokSzamaTol int = NULL
|
|
,@pTanulokSzamaIg int = NULL
|
|
,@pOktatokSzamaTol int = NULL
|
|
,@pOktatokSzamaIg int = NULL
|
|
,@pCsoportokSzamaTol int = NULL
|
|
,@pCsoportokSzamaIg int = NULL
|
|
,@pTantargyakSzamaTol int = NULL
|
|
,@pTantargyakSzamaIg int = NULL
|
|
,@pHelyszinSzamaTol int = NULL
|
|
,@pHelyszinSzamaIg int = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @sql nvarchar(max) = N''
|
|
|
|
SET @sql = N'
|
|
CREATE TABLE #LathatoSzervezetek (ID int)
|
|
INSERT INTO #LathatoSzervezetek (ID)
|
|
SELECT lsz.ID
|
|
FROM fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pAdatokHalmaza) lsz
|
|
'
|
|
|
|
SET @sql += N'
|
|
SELECT * FROM (
|
|
SELECT
|
|
sz.ID AS SzervezetId
|
|
,sz.C_TIPUS AS SzervezetTipus
|
|
,sz.C_NEV AS SzervezetNev
|
|
,sz.C_AZONOSITO AS SzervezetAzonosito
|
|
,sz.C_SZERVEZETCIM AS SzervezetCim
|
|
,sz.C_DUALISHELYSZINTIPUSID AS HelyszinTipusId
|
|
,COUNT(DISTINCT cs.ID) AS CsoportokSzama
|
|
,COUNT(DISTINCT ma.ID) AS OktatokSzama
|
|
,COUNT(DISTINCT tta.ID) AS TanulokSzama
|
|
,COUNT(DISTINCT tt.ID) AS TantargyakSzama
|
|
,COUNT(DISTINCT t.ID) AS HelyszinekSzama
|
|
,sz.CREATOR AS RogzitoId
|
|
,sz.C_PARENTSZERVEZETID AS ParentSzervezetId
|
|
,psz.C_NEV AS ParentSzervezetNev
|
|
FROM T_SZERVEZET_OSSZES sz
|
|
INNER JOIN #LathatoSzervezetek lsz ON lsz.ID = sz.ID
|
|
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.C_SZERVEZETID = sz.ID AND cs.C_ALTANEVID = sz.C_TANEVID AND cs.TOROLT = ''F''
|
|
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES ma ON ma.C_SZERVEZETID = sz.ID AND ma.C_TANEVID = sz.C_TANEVID AND ma.TOROLT = ''F''
|
|
LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_SZERVEZETID = sz.ID AND tta.C_TANEVID = sz.C_TANEVID AND tta.TOROLT = ''F''
|
|
LEFT JOIN T_TANTARGY_OSSZES tt ON tt.C_SZERVEZETID = sz.ID AND tt.C_TANEVID = sz.C_TANEVID AND tt.TOROLT = ''F''
|
|
LEFT JOIN T_TEREM_OSSZES t ON t.C_SZERVEZETID = sz.ID AND t.C_TANEVID = sz.C_TANEVID AND t.TOROLT = ''F''
|
|
LEFT JOIN T_SZERVEZET_OSSZES psz ON psz.ID = sz.C_PARENTSZERVEZETID AND psz.C_TANEVID = sz.C_TANEVID AND psz.TOROLT = ''F''
|
|
WHERE sz.C_TANEVID = @pTanevId
|
|
AND sz.TOROLT = ''F''
|
|
GROUP BY sz.ID, sz.C_NEV, sz.C_SZERVEZETCIM, sz.C_AZONOSITO, sz.C_TIPUS, sz.C_DUALISHELYSZINTIPUSID, sz.CREATOR, sz.C_PARENTSZERVEZETID, psz.C_NEV
|
|
) x
|
|
WHERE 1 = 1
|
|
'
|
|
|
|
SET @sql = CONCAT(
|
|
@sql
|
|
,IIF(@pNev > N'', N' AND SzervezetNev LIKE N''%'' + @pNev + N''%''', N'')
|
|
,IIF(@pAzonosito > N'', N' AND SzervezetAzonosito LIKE N''%'' + @pAzonosito + N''%''', N'')
|
|
,IIF(@pSzervezetCime > N'', N' AND SzervezetCim LIKE N''%'' + @pSzervezetCime + N''%''', N'')
|
|
,IIF(@pTanulokSzamaTol IS NOT NULL, N' AND TanulokSzama >=' + CAST(@pTanulokSzamaTol AS char(10)) + ' ', N'')
|
|
,IIF(@pTanulokSzamaIg IS NOT NULL, N' AND TanulokSzama <=' + CAST(@pTanulokSzamaIg AS char(10)) + ' ', N'')
|
|
,IIF(@pOktatokSzamaTol IS NOT NULL, N' AND OktatokSzama >=' + CAST(@pOktatokSzamaTol AS char(10)) + ' ', N'')
|
|
,IIF(@pOktatokSzamaIg IS NOT NULL, N' AND OktatokSzama <=' + CAST(@pOktatokSzamaIg AS char(10)) + ' ', N'')
|
|
,IIF(@pCsoportokSzamaTol IS NOT NULL, N' AND CsoportokSzama >=' + CAST(@pCsoportokSzamaTol AS char(10)) + ' ', N'')
|
|
,IIF(@pCsoportokSzamaIg IS NOT NULL, N' AND CsoportokSzama <=' + CAST(@pCsoportokSzamaIg AS char(10)) + ' ', N'')
|
|
,IIF(@pTantargyakSzamaTol IS NOT NULL, N' AND TantargyakSzama >=' + CAST(@pTantargyakSzamaTol AS char(10)) + ' ', N'')
|
|
,IIF(@pTantargyakSzamaIg IS NOT NULL, N' AND TantargyakSzama <=' + CAST(@pTantargyakSzamaIg AS char(10)) + ' ', N'')
|
|
,IIF(@pHelyszinSzamaTol IS NOT NULL, N' AND HelyszinSzama >=' + CAST(@pHelyszinSzamaTol AS char(10)) + ' ', N'')
|
|
,IIF(@pHelyszinSzamaIg IS NOT NULL, N' AND HelyszinSzama <=' + CAST(@pHelyszinSzamaIg AS char(10)) + ' ', N'')
|
|
)
|
|
|
|
EXECUTE sp_executesql @sql, N'
|
|
@pIntezmenyId int
|
|
,@pTanevId int
|
|
,@pSzervezetId int
|
|
,@pAdatokHalmaza int
|
|
,@pNev nvarchar(255)
|
|
,@pAzonosito nvarchar(255)
|
|
,@pSzervezetCime nvarchar(255)'
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pSzervezetId = @pSzervezetId
|
|
,@pAdatokHalmaza = @pAdatokHalmaza
|
|
,@pNev = @pNev
|
|
,@pAzonosito = @pAzonosito
|
|
,@pSzervezetCime = @pSzervezetCime
|
|
|
|
END
|
|
|
|
GO
|
|
|