none
Suma de Fechas acumuladas RRS feed

  • Pregunta

  • Hola a todos.

    Quiero hacer una consulta en la que de acuerdo a la fecha que seleccionada de una variable declarada (@Fecha), se muestren los meses anteriores a este de acuerdo al año.

    SELECT

    CLAVE_COMP,TIPO_CIA,[FECHA_REPORTE],PR_MENSUAL_GEN_ANT,PR_MENSUAL_IMSS_GEN_ACT,PR_MENSUAL_ISSSTE_GEN_ACT

    FROM[RR3P].[dbo].[RR3P_RENDIMIENTO_MIN_ACREDITABLE]

    WHERETIPO_CIA ='P'

    ANDCLAVE_COMP ='0901'

    AND[FECHA_REPORTE] = @Fecha

    GROUPBYCLAVE_COMP,TIPO_CIA,FECHA_REPORTE,PR_MENSUAL_GEN_ANT,PR_MENSUAL_IMSS_GEN_ACT,PR_MENSUAL_ISSSTE_GEN_ACT

    ORDERBY[FECHA_REPORTE] DESC.

    Se agrace su apoyo.

    lunes, 8 de enero de 2018 23:27

Respuestas

  • Que tal Pablo.

    Revisare la función OVER para lograr el resultado correcto de mi consulta.

    Solo una duda entonces posible condicionar el resultado de la consulta a que solo muestre el total de la suma por fila que uno haga en el select y que estos solo muestren de acuerdo a la selección de la variable los meses hacia atrás del mismo año:

    Ejemplo: Selecciono el años y mes previo de una variable declarada @Fecha = 201709

    y que el resultado de esta consulta de la suma de los meses de Septiembre hasta Enero (201708,201707,201706...201701).

    Query implementado:

    SELECT

    A.PR_SS_GEN_ANT +A.PR_SS_IMSS_GEN_ACT


    FROM

    (


    SELECT

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE],


    SUM

    ([RR3P_RENDIMIENTO_MIN_ACREDITABLE].PR_SS_GEN_ANT)ASPR_SS_GEN_ANT,


    SUM

    ([RR3P_RENDIMIENTO_MIN_ACREDITABLE].PR_SS_IMSS_GEN_ACT)ASPR_SS_IMSS_GEN_ACT,

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE]

    .FK_COMPA


    FROM

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE]


    WHERE

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].FK_COMPA =@COMPA


    And

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].TIPO_CIA =@TIPOCIA


    And

    CONCAT(YEAR([RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE]),FORMAT(Month([RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE]),'0#'))=@FECHACORTE


    GROUP

    BY[RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE],[RR3P_RENDIMIENTO_MIN_ACREDITABLE].FK_COMPA)ASA

    Gracias nuevamente por la ayuda.

    martes, 9 de enero de 2018 22:52

Todas las respuestas

  • Hola Slafco

    Lo que puedes realizar es un OVER que es un Transact-SQL  que te permite definir el resultado de las filas, el siguiente enlace y ejemplo de código te serán muy útiles.

    https://msdn.microsoft.com/es-es/library/ms189461(v=sql.120).aspx

    Código ejemplo:

    SELECT BusinessEntityID, TerritoryID

        ,CONVERT(varchar(20),SalesYTD,1) AS  SalesYTD

        ,DATEPART(yy,ModifiedDate) AS SalesYear

        ,CONVERT(varchar(20),SUM(SalesYTD) OVER (PARTITION BY TerritoryID

                                                 ORDER BY DATEPART(yy,ModifiedDate)

                                                 ROWS UNBOUNDED PRECEDING),1) AS CumulativeTotal

    FROM Sales.SalesPerson

    WHERE TerritoryID IS NULL OR TerritoryID < 5;

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 9 de enero de 2018 16:26
    Moderador
  • Que tal Pablo.

    Revisare la función OVER para lograr el resultado correcto de mi consulta.

    Solo una duda entonces posible condicionar el resultado de la consulta a que solo muestre el total de la suma por fila que uno haga en el select y que estos solo muestren de acuerdo a la selección de la variable los meses hacia atrás del mismo año:

    Ejemplo: Selecciono el años y mes previo de una variable declarada @Fecha = 201709

    y que el resultado de esta consulta de la suma de los meses de Septiembre hasta Enero (201708,201707,201706...201701).

    Query implementado:

    SELECT

    A.PR_SS_GEN_ANT +A.PR_SS_IMSS_GEN_ACT


    FROM

    (


    SELECT

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE],


    SUM

    ([RR3P_RENDIMIENTO_MIN_ACREDITABLE].PR_SS_GEN_ANT)ASPR_SS_GEN_ANT,


    SUM

    ([RR3P_RENDIMIENTO_MIN_ACREDITABLE].PR_SS_IMSS_GEN_ACT)ASPR_SS_IMSS_GEN_ACT,

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE]

    .FK_COMPA


    FROM

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE]


    WHERE

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].FK_COMPA =@COMPA


    And

    [RR3P_RENDIMIENTO_MIN_ACREDITABLE].TIPO_CIA =@TIPOCIA


    And

    CONCAT(YEAR([RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE]),FORMAT(Month([RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE]),'0#'))=@FECHACORTE


    GROUP

    BY[RR3P_RENDIMIENTO_MIN_ACREDITABLE].[FECHA_REPORTE],[RR3P_RENDIMIENTO_MIN_ACREDITABLE].FK_COMPA)ASA

    Gracias nuevamente por la ayuda.

    martes, 9 de enero de 2018 22:52