Pues como el nombre lo indica, me pueden dar sugerencias para tunnear este query
Código SQL:
Ver original
SELECT CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Ene / DG.TotDiasDEvengar) END AS Imp_M01_Ene , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Feb / DG.TotDiasDEvengar) END AS Imp_M02_Feb , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Mar / DG.TotDiasDEvengar) END AS Imp_M03_Mar , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Abr / DG.TotDiasDEvengar) END AS Imp_M04_Abr , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_May / DG.TotDiasDEvengar) END AS Imp_M05_May , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Jun / DG.TotDiasDEvengar) END AS Imp_M06_Jun , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Jul / DG.TotDiasDEvengar) END AS Imp_M07_Jul , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Ago / DG.TotDiasDEvengar) END AS Imp_M08_Ago , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Sep / DG.TotDiasDEvengar) END AS Imp_M09_Sep , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Oct / DG.TotDiasDEvengar) END AS Imp_M10_Oct , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Nov / DG.TotDiasDEvengar) END AS Imp_M11_Nov , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Dic / DG.TotDiasDEvengar) END AS Imp_M12_Dic , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Tran1 / DG.TotDiasDEvengar) END AS Imp_M13_EneAs , CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE DG.PrecioImporte * (DG.CEPrograma_Tran2 / DG.TotDiasDEvengar) END AS Imp_M14_FebAs
La verdad no me surge ninguna idea para reducir la carga al servidor, esto es un fragmento del código, se hizo así para que se generen muchas columnas a partir de una decisión pero la verdad no se me ocurre mucho.
Con una sola decisión me refiero a que este código es el mismo para todas las decisiones.
Código SQL:
Ver original
CASE WHEN DG.TotDiasDEvengar = 0 THEN 0 ELSE ...
Agradezco de antemano su visita y consejo.
Saludos