kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190921130445_KRETA2_1295/uspKIRstat_TanuloEletkor.sql
2024-03-13 00:33:46 +01:00

56 lines
No EOL
2.7 KiB
Transact-SQL

-- ===================================================================================================
-- KIRSTAT - Tanuló életkor besorolása
-- ===================================================================================================
-- 5. MUNKALAP - A04T21 - GYERMEKEK, TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
-- 11. MUNKALAP - A04T63 - LEÁNY GYERMEKEK, TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
-- 18. MUNKALAP - A04T92 - 30 ÉVES ÉS IDŐSEBB TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
-- 19. MUNKALAP - A04T93 - 30 ÉVES ÉS IDŐSEBB LEÁNY TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
-- 21. MUNKALAP - A04T101 - INTEGRÁLTAN OKTATOTT SAJÁTOS NEVELÉSI IGÉNYŰ GYERMEKEK, TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
-- 22. MUNKALAP - A04T102 - INTEGRÁLTAN OKTATOTT SAJÁTOS NEVELÉSI IGÉNYŰ LEÁNY GYERMEKEK, TANULÓK SZÁMA ÉLETKORUK SZERINT, NYITÓADATOK
DROP PROCEDURE IF EXISTS uspKIRstat_TanuloEletkor
GO
CREATE PROCEDURE uspKIRstat_TanuloEletkor
@pFeladatellatasiHelyId int
,@pTanevId int
AS
BEGIN
SET NOCOUNT ON;
DROP TABLE IF EXISTS #Table
CREATE TABLE #Table (
Kezdet datetime,
Veg datetime,
Kor nvarchar(10)
)
DECLARE
@kezdet datetime
,@veg datetime
,@oktoberEgy datetime
SET @kezdet = (SELECT LEFT(C_NEV, 4) FROM T_TANEV WHERE ID = @pTanevId) + '0101'
SET @veg = (SELECT LEFT(C_NEV, 4) FROM T_TANEV WHERE ID = @pTanevId) + '1231'
SET @oktoberEgy = (SELECT LEFT(C_NEV, 4) FROM T_TANEV WHERE ID = @pTanevId) + '1001'
;WITH cteDateRange AS (
SELECT DATEADD(yy, -2, @kezdet) AS Kezdet, @veg AS Veg, Kor = 2
UNION ALL
SELECT DATEADD(yy, -IIF(Kor + 1 = 65,100,Kor+1), @kezdet), DATEADD(yy, -(Kor + 1), @veg), Kor + 1
FROM ctedaterange
WHERE Kor + 1 <= 65
)
SELECT fh.ID AS TanuloId, fh.C_NYOMTATASINEV AS TanuloNev, tbl.Kor AS Eletkor, CASE fh.C_NEME WHEN 4 THEN 'Fiú' WHEN 5 THEN 'Leány' ELSE NULL END AS Neme, t.C_SAJATOSNEVELESU AS SNI, d.C_NAME_4 AS Evfolyam
FROM T_FELHASZNALO fh
INNER JOIN T_TANULO_OSSZES t ON t.ID = fh.ID
INNER JOIN cteDateRange tbl ON fh.C_SZULETESIDATUM BETWEEN tbl.Kezdet AND tbl.Veg
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT = 'F' AND tcs.C_BELEPESDATUM <= @oktoberEgy AND (tcs.C_KILEPESDATUM > @oktoberEgy OR tcs.C_KILEPESDATUM IS NULL)
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATELLATASIHELYID = @pFeladatellatasiHelyId
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = ocs.C_EVFOLYAMTIPUSA AND d.C_TANEVID = ocs.C_TANEVID
WHERE fh.C_TANEVID = @pTanevId
AND fh.TOROLT = 'F'
END
GO