none
SUMA ACUMULADA REINICIO DE COLUMNA RRS feed

  • Pregunta

  • Buenas noches a todos, tengo el siguiente select :

    select 
    a.idTurno, a.ContMetaSRgm ,a.ContMetaSBgm,b.cosecha, b.Flujometro,A.tms,a.ContMetaTMSgm,CONVERT(DATETIME,b.Fecha,101) as fecha
    from BalanceMetalurgico a inner join turno b on a.idturno = b.idTurno  
    where b.Estado = 'Cerrado' AND
    month( CONVERT(DATETIME,b.Fecha,101) ) =  12 and year( CONVERT(DATETIME,b.Fecha,101) )=2020

    y me entrega el siguiente resultado 

    Me pidieron que realizara un acumulativo POR DIA para las columnas TMS ,Flujometro y una resta para las columnas ContMetaSRgm, ,ContMetaSBgm, mas un acumulativo del resultado de estas mismas ahí todo bien, así que procedí a realizar lo siguiente : 

    select fc.fecha as dia,
    fc.[TMS],fc.[Ley_Cabeza],sum(fc.[TMS]) over(  Order By fc.fecha)  as acumuladoTMS,fc.[Volumen m3], sum( fc.[Volumen m3]) over (order by fc.fecha) as acumuladoMC,
    fc.[gAu_P] as precipitado,   sum( fc.[gAu_P]) over (order by fc.fecha) as acumuladoPrecipitado 
    from(
    select 
    [TMS] = sum(convert ( decimal(12,2), round( a.tms , 2)))   ,
    [Ley_Cabeza] = convert ( decimal(12,2),( ( sum(convert ( decimal(12,3),round(a.ContMetaTMSgm,2))) / sum(convert ( decimal(12,3),round(a.tms,2))) ))),
    [gAu_P] = convert ( decimal(12,2),(sum(convert ( decimal(12,3),a.ContMetaSRgm))  - sum(convert ( decimal(12,3),a.ContMetaSBgm)) ) ),
    [Volumen m3] = sum(convert ( decimal(12,3),b.Flujometro)),
     day(CONVERT(DATETIME,b.Fecha,101) ) as fecha
    from BalanceMetalurgico a inner join turno b on a.idturno = b.idTurno  
    where b.Estado = 'Cerrado' and 
    month( CONVERT(DATETIME,b.Fecha,101) ) =  12 and year( CONVERT(DATETIME,b.Fecha,101) )=2020
    group by fecha
    ) as fc


    El resultado estuvo genial! 

    Pero después me pidieron que cree una columna mas del "acumuladoPrecipitado" cuando la columna "cosecha" sea Y este acumulativo se reinicie y vuelva acumular. Pero esta columna "acumuladoPrecipitado" proviene de una resta de 2 columnas dentro del select, prácticamente esperan lo siguiente :

    Se espera el siguiente resultado : 

    Justamente obtener dicho resultado estoy teniendo severas dificultades, ejemplo si la cosecha es "N" en el turno "mañana" pero en el turno tarde de ese mismo dia es "Y" no se tomaria en cuenta el turno de la mañana por tener valor "N".

    Alguna idea para lograr dicho resultado ?

    Saludos!


    • Editado DrgunGrun miércoles, 23 de diciembre de 2020 3:41
    miércoles, 23 de diciembre de 2020 2:13