DROP FUNCTION IF EXISTS fnGetLathatoSzervezetek GO CREATE FUNCTION fnGetLathatoSzervezetek ( @pIntezmenyId INT ,@pTanevId INT ,@pSzervezetId INT = NULL ,@pAdatokHalmaza INT = 0 -- 0: megadott szervezet és alszervezetei, 1: megadott szervezet (SzervezetId = NULL esetén az ősszes székhely), 2: megadott szervezet alszervezetei ) RETURNS TABLE RETURN ( SELECT ID FROM T_SZERVEZET_OSSZES sz WHERE sz.TOROLT = 'F' AND sz.C_TANEVID = @pTanevId AND sz.C_INTEZMENYID = @pIntezmenyId AND ((@pAdatokHalmaza = 1 AND @pSzervezetId IS NOT NULL AND ID = @pSzervezetId) OR (@pAdatokHalmaza = 1 AND @pSzervezetId IS NULL AND C_PARENTSZERVEZETID IS NULL) OR (@pAdatokHalmaza = 2 AND @pSzervezetId IS NOT NULL AND C_PARENTSZERVEZETID = @pSzervezetId) OR (@pAdatokHalmaza = 0 AND @pSzervezetId IS NOT NULL AND (C_PARENTSZERVEZETID = @pSzervezetId OR ID = @pSzervezetId)) OR (@pAdatokHalmaza = 0 AND @pSzervezetId IS NULL)) ); GO