﻿-- ===================================================================================================
-- 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
  ,@pIsKirstat bit = 1
AS
SET NOCOUNT ON;

DECLARE @oktoberEgy datetime;

SELECT @oktoberEgy = LEFT(C_NEV, 4) + IIF(@pIsKirstat = 1, '1001', '1008') FROM T_TANEV WHERE ID = @pTanevId;

SELECT  DISTINCT
         fh.ID AS TanuloId
        ,fh.C_NYOMTATASINEV AS TanuloNev
        ,fhKor.Kor AS Eletkor
        ,CASE WHEN fhKor.Kor < 3 THEN N'3 évesnél fiatalabb'
              WHEN fhKor.Kor BETWEEN 3 AND 49 THEN CONCAT(fhKor.Kor, N' éves')
              WHEN fhKor.Kor BETWEEN 50 AND 54 THEN N'50-54 éves'
              WHEN fhKor.Kor BETWEEN 55 AND 59 THEN N'55-59 éves'
              WHEN fhKor.Kor BETWEEN 60 AND 64 THEN N'60-64 éves'
              WHEN fhKor.Kor > 64 THEN N'65 éves és idősebb'
              ELSE ''
         END AS Kor
        ,fh.C_NEME
        ,CASE fh.C_NEME WHEN 4 THEN 'Fiú' WHEN 5 THEN 'Leány' ELSE 'Na' END AS Neme
        ,t.C_SAJATOSNEVELESU AS SNI
        ,d1.C_NAME_4 AS Evfolyam
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_TANULO_OSSZES t                ON t.ID = fh.ID
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'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d1    ON d1.ID = ocs.C_EVFOLYAMTIPUSA AND d1.C_TANEVID = ocs.C_TANEVID AND d1.C_TYPE = 'EvfolyamTipus' AND d1.TOROLT = 'F'
OUTER APPLY (SELECT DATEDIFF(yy, fh.C_SZULETESIDATUM, @oktoberEgy) AS Kor) fhKor
WHERE fh.C_TANEVID = @pTanevId
AND fh.TOROLT = 'F'
AND tta.C_JOGVISZONYATSZUNETELTETO = 'F'
AND tta.C_VENDEG = 'F'
ORDER BY fh.C_NYOMTATASINEV

GO

