none
Sumas acumuladas con condiciones para sumar datos de otras columnas RRS feed

  • Pregunta

  • Buen dia amigos tengo la siguiente tabla 


    NODOS 4-50% 5-50% 6-50% 7-50% 8-50% 9-50%
    27700-0 NULL NULL NULL NULL NULL NULL
    29468-0 1.35 1.82 1.96 1.75 1.65 1.41
    36013-0 0.745 1.21 1.265 1.01 0.9 0.85
    29469-0 0.785 1.1 1.06 0.96 1 1.03
    27712-0 1.1 1.4 1.44 1.46 1.77 1.52
    27713-0 0.69 1.17 1.24 0.98 1.01 0.95
    27681-0 0.6 0.84 0.87 0.8 0.675 0.655
    27682-0 0.56 0.6 0.56 0.58 0.59 0.61
    27683-0 2.17 2.72 2.605 2.3 2.3 3
    27735-0 0.53 0.55 0.53 0.535 0.53 0.52
    27737-0 0.7 0.905 0.86 0.865 0.7 0.7
    27714-0 1.385 1.45 1.38 1.34 1.37 1.475
    27715-0 0.75 1.18 1.26 1.025 1.19 0.97
    27716-0 0.75 1.125 1.15 1 1 1.095
    27717-0 1.08 1.3 1.32 1.275 1.4 1.42
    27718-0 0.55 0.735 0.8 0.8 0.765 0.75
    27738-0 0.36 0.45 0.47 0.43 0.4 0.38
    44989-0 1.065 1.265 1.69 1.38 1.48 1.45
    44990-0 0.82 2.31 4.295 2.06 1.77 1.525
    44991-0 1.015 1.03 1.2 1.16 1.365 1.11
    44992-0 0.53 1.1 1.36 1.27 0.845 0.94
    44993-0 1.05 1.55 1.48 1.56 1.31 1.36
    44997-0 0.99 1.32 2.08 3.18 1.295 1.34
    44999-0 1.47 4.105 7.87 8.37 5.99 6.53
    45001-0 1.07 1.375 1.61 1.945 1.69 1.79
    45004-0 0.72 1.11 1.765 2.08 1.7 1.85
    45007-0 0.83 1.44 1.94 2.17 2.11 1.965
    45011-0 2.08 2.63 3.8 6.4 5.175 4.95
    45012-0 0.355 0.56 1.37 1.48 1.2 1.21
    45015-0 0.55 0.875 1.67 1.84 1.595 1.62

    Quiero hacer una suma cumulada de la columa '4' por filas estoy usando UNBOUNDED PRECEDING y funciona a la perfección 

    pero quiero que cuando el acumulado sea mayor que 60 y menor 120 empiece a sumar el acumulado de la siguiente columna '5' pero desde la fila donde acumulado dio mas 60 y menor 120 estoy usando el la siguiente instrucción.

    select p.Id_Nodo, p.Nombre_Nodo,
    
    case
    when sum(p.[4-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING) > 0 and sum(p.[4-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING) <=  60
    
    then sum(p.[4-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING)
    
    
    when sum(p.[4-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING) > 60 and sum(p.[4-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING) <=  120
    
    then   sum(p.[5-50%]) over (order by p.Id_Nodo ROWS UNBOUNDED PRECEDING) 
    
    ELSE
    0
    end AS '4'
    
    
    from PERCENTIL_50_YA_TERMINADO as p 
    Pero no me da , agradecería mucho si ayuda 
     
    • Editado MC BAMBAM miércoles, 12 de julio de 2017 23:27
    miércoles, 12 de julio de 2017 23:26

Respuestas