89 lines
No EOL
4.5 KiB
Transact-SQL
89 lines
No EOL
4.5 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspCsoportKeresesForSzervezet
|
|
GO
|
|
|
|
CREATE PROCEDURE uspCsoportKeresesForSzervezet
|
|
@pTanevId INT = null
|
|
,@pIntezmenyId INT = null
|
|
,@pSearchDate DATETIME = null
|
|
,@pCsoportNev NVARCHAR(512) = null
|
|
,@pTeremID INT = null
|
|
,@pCsopTipID INT = null
|
|
,@pSzervezetId INT = null
|
|
,@pSzervezetekHalmaza INT = null
|
|
,@pCsopvezID INT = null
|
|
,@pTanulokSzamaTol INT = null
|
|
,@pTanulokSzamaIg INT = null
|
|
,@pSzervezetNev NVARCHAR(512) = null
|
|
,@pSzervezetAdoszam NVARCHAR(512) = null
|
|
AS
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
T_CSOPORT_OSSZES.ID
|
|
,T_TANEV_OSSZES.C_NEV AS TanevNev
|
|
,T_TANEV_OSSZES.ID AS TanevId
|
|
,T_OSZTALYCSOPORT_OSSZES.C_NEV AS CsoportNev
|
|
,ISNULL(T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA, osztalyBontasNev.C_EVFOLYAMTIPUSA) AS EvfolyamTipusaId
|
|
,T_TEREM_OSSZES.c_nev AS TeremNev
|
|
,T_OSZTALYCSOPORT_OSSZES.C_VEGZOSEVFOLYAM AS Vegzos
|
|
,T_CSOPORT_OSSZES.C_TIPUSA AS CsopTip
|
|
,CONCAT(ISNULL(TANULOK.SZAM,0), ' (', ISNULL(tcsArchiv.ArchivTanulokSzama, 0), ')') AS TanulokSzama
|
|
,ISNULL(TANULOK.SZAM, 0) * 1000 + ISNULL(tcsArchiv.ArchivTanulokSzama, 0) AS TanulokSzamaOrder
|
|
,ISNULL(TANULOK.SZAM,0) AS AktualisTanulokSzama
|
|
,T_DICTIONARYITEMBASE_OSSZES.C_VALUE AS EvfolyamSorszama
|
|
,osztalyBontasNev.C_NEV AS OsztalyBontasNev
|
|
,T_OSZTALYCSOPORT_OSSZES.C_MUVESZETIAGID AS MuveszetiAgId
|
|
,T_OSZTALYCSOPORT_OSSZES.CREATOR AS RogzitoId
|
|
,sz.ID AS SzervezetId
|
|
,sz.C_NEV AS SzervezetNeve
|
|
,sz.C_AZONOSITO AS SzervezetAdoszama
|
|
,fh.C_NYOMTATASINEV AS CsoportvezetoNev
|
|
,T_OSZTALYCSOPORT_OSSZES.C_MEGJEGYZES AS Megjegyzes
|
|
FROM T_CSOPORT_OSSZES WITH(NOLOCK)
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES WITH(NOLOCK) ON T_OSZTALYCSOPORT_OSSZES.ID = T_CSOPORT_OSSZES.ID AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES osztalyBontasNev WITH(NOLOCK) ON osztalyBontasNev.ID = T_CSOPORT_OSSZES.C_OSZTALYBONTASID AND osztalyBontasNev.TOROLT = 'F'
|
|
LEFT JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID AND T_TANEV_OSSZES.TOROLT = 'F'
|
|
LEFT JOIN T_TEREM_OSSZES ON T_TEREM_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TEREMID AND T_TEREM_OSSZES.TOROLT = 'F'
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F'
|
|
INNER JOIN (
|
|
T_SZERVEZET_OSSZES sz
|
|
INNER JOIN (
|
|
SELECT ID FROM dbo.fnGetLathatoSzervezetek(@pIntezmenyId, @pTanevId, @pSzervezetId, @pSzervezetekHalmaza)) AS lathato ON lathato.ID = sz.ID
|
|
) ON sz.ID = T_CSOPORT_OSSZES.C_SZERVEZETID AND sz.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID AND sz.TOROLT = 'F'
|
|
LEFT JOIN (
|
|
SELECT
|
|
C_OSZTALYCSOPORTID
|
|
,COUNT(DISTINCT C_TANULOID) AS SZAM
|
|
FROM T_TANULOCSOPORT_OSSZES WITH(NOLOCK)
|
|
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = T_TANULOCSOPORT_OSSZES.C_TANEVID AND tanev.C_INTEZMENYID = T_TANULOCSOPORT_OSSZES.C_INTEZMENYID
|
|
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
|
|
AND (
|
|
(
|
|
IIF( @pSearchDate > tanev.C_UTOLSONAP ,tanev.C_UTOLSONAP,@pSearchDate) BETWEEN T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM AND ISNULL(T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM, tanev.C_UTOLSONAP) AND tanev.C_AKTIV = 'T'
|
|
)
|
|
OR
|
|
tanev.C_AKTIV = 'F'
|
|
)
|
|
GROUP BY C_OSZTALYCSOPORTID
|
|
) TANULOK ON TANULOK.C_OSZTALYCSOPORTID = T_CSOPORT_OSSZES.ID
|
|
LEFT JOIN (
|
|
SELECT
|
|
COUNT(DISTINCT C_TANULOID) AS ArchivTanulokSzama
|
|
,C_OSZTALYCSOPORTID
|
|
FROM T_TANULOCSOPORT_OSSZES tcs WITH(NOLOCK)
|
|
WHERE tcs.TOROLT = 'F'
|
|
GROUP BY C_OSZTALYCSOPORTID
|
|
) tcsArchiv ON tcsArchiv.C_OSZTALYCSOPORTID = T_CSOPORT_OSSZES.ID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = T_CSOPORT_OSSZES.C_CSOPORTVEZETOID AND fh.TOROLT ='F' AND fh.C_TANEVID = T_CSOPORT_OSSZES.C_ALTANEVID
|
|
WHERE T_CSOPORT_OSSZES.TOROLT = 'F'
|
|
AND T_CSOPORT_OSSZES.C_ALTANEVID = @pTanevId
|
|
AND (@pCsoportNev IS NULL OR T_OSZTALYCSOPORT_OSSZES.C_NEV LIKE '%' + @pCsoportNev + '%')
|
|
AND (@pCsopTipID IS NULL OR T_CSOPORT_OSSZES.C_TIPUSA = @pCsopTipID)
|
|
AND (@pTeremID IS NULL OR T_OSZTALYCSOPORT_OSSZES.C_TEREMID = @pTeremID)
|
|
AND (@pCsopvezID IS NULL OR T_CSOPORT_OSSZES.C_CSOPORTVEZETOID = @pCsopvezID)
|
|
AND (@pTanulokSzamaTol IS NULL OR ISNULL(TANULOK.SZAM, 0) >= @pTanulokSzamaTol)
|
|
AND (@pTanulokSzamaIg IS NULL OR ISNULL(TANULOK.SZAM, 0) <= @pTanulokSzamaIg)
|
|
AND (@pSzervezetNev IS NULL OR sz.C_NEV LIKE '%' + @pSzervezetNev + '%')
|
|
AND (@pSzervezetAdoszam IS NULL OR sz.C_AZONOSITO LIKE '%' + @pSzervezetAdoszam + '%')
|
|
OPTION(RECOMPILE)
|
|
GO |