56 lines
3.0 KiB
SQL
56 lines
3.0 KiB
SQL
-- Schema: C6Mart
|
|
-- Stored Procedure: PL_S37PiramideModello
|
|
|
|
-- =============================================
|
|
-- 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
|
|
|
|
|
|
|