PDC_REPORT_CreazioneDB/sql/Produzione/procedure/C6Mart_PL_S37PiramideModello.sql
2025-06-10 15:29:00 +02:00

46 lines
3.0 KiB
SQL

-- =============================================
-- Author: Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6Mart].[PL_S37PiramideModello] 'F','RSSGPL33R01L219K'
CREATE procedure [C6Mart].[PL_S37PiramideModello]
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
-- VECCHIA VERSIONE CON UNA RIGA DI TROPPO PER L'AREA INV
-- 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(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale, -- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
-- SUM(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) 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
-- FROM C6MART.AREA_BISOGNO
-- LEFT JOIN C6MART.PIRAMIDE_MOD ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
-- AND PIRAMIDE_MOD.RETE = @Rete
-- AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
-- WHERE AREA_BISOGNO.ORDINAMENTO < 6
-- ORDER BY AREA_BISOGNO.ORDINAMENTO
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
FROM C6MART.AREA_BISOGNO
LEFT JOIN C6MART.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.NOME_PROGETTO = 'Default'))
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