DROP PROCEDURE IF EXISTS uspSzirStatKonyvtar
GO

CREATE PROCEDURE uspSzirStatKonyvtar
   @pIntezmenyId int
  ,@pTanevId int
AS BEGIN
  SET NOCOUNT ON;
  DECLARE @ElozoTanevId int;

  SELECT @ElozoTanevId = ID 
  FROM T_TANEV_OSSZES 
  WHERE TOROLT = 'F'
  AND C_INTEZMENYID = @pIntezmenyId
  AND C_SORSZAM = (SELECT C_SORSZAM - 2 FROM T_TANEV where ID = @pTanevId AND C_INTEZMENYID = @pIntezmenyId);


  SELECT
     ISNULL(szk.ID, szkk.ID) AS ID
    ,szk.ID AS SzirId
    ,szkk.ID AS KategoriaId
    ,COALESCE(szk.C_NYITOADAT, szk_elo.C_NYITOADAT) AS Nyitoadat
    ,COALESCE(szk.C_NYITOADATNEMZETISEGI, szk_elo.C_NYITOADATNEMZETISEGI) AS NyitoadatNemzetisegi
    ,COALESCE(szk.C_GYARAPODAS, szk_elo.C_GYARAPODAS) AS Gyarapodas
    ,COALESCE(szk.C_FORGALOM, szk_elo.C_FORGALOM) AS Forgalom
    ,szkk.Sorszam AS Sorszam
    ,szkk.C_NEV AS Nev
    ,szkk.Szint AS Szint
  FROM (
      SELECT
        ID
        ,C_NEV
        ,ROW_NUMBER() OVER(ORDER BY szkk.ID ASC) AS Sorszam
        ,CASE
          WHEN ID % 1000 = 0 THEN 1
          WHEN ID % 100 = 0 THEN 2
          WHEN ID % 10 = 0 THEN 3
          WHEN ID % 1 = 0 THEN 4
        END AS Szint
        ,TOROLT
      FROM T_SZIRSTATKONYVTARKATEGORIA szkk
        WHERE TOROLT = 'F'
  ) szkk
  LEFT JOIN T_SZIRSTATKONYVTAR_OSSZES szk ON szk.C_SZIRSTATKONYVTARKATEGORIAID = szkk.ID
      AND szk.C_INTEZMENYID = @pIntezmenyId
      AND szk.C_TANEVID = @pTanevId
      AND szk.TOROLT = 'F'
  LEFT JOIN T_SZIRSTATKONYVTAR_OSSZES szk_elo ON szk_elo.C_SZIRSTATKONYVTARKATEGORIAID = szkk.ID
      AND szk_elo.C_INTEZMENYID = @pIntezmenyId
      AND szk_elo.C_TANEVID = @ElozoTanevId
      AND szk_elo.TOROLT = 'F'
  WHERE szkk.TOROLT = 'F'
END
GO