-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S37PiramideModello] 'F','BCCLVI34M18F335J'
CREATE procedure [C6MartPeriodico].[PL_S37PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SELECT
		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
		AREA_BISOGNO.ORDINAMENTO AS Ordinamento
	FROM C6MartPeriodico.AREA_BISOGNO
	LEFT JOIN C6MartPeriodico.PIRAMIDE_MOD 
		ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
		AND((PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL)
			OR PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
	WHERE AREA_BISOGNO.ORDINAMENTO < 6	
	ORDER BY AREA_BISOGNO.ORDINAMENTO
END