none
Ayuda en consulta Suma de valores RRS feed

  • Pregunta

  • Necesito su ayuda

    tengo una tabla como la siguiente

    codigo_dele  nombres  Salario  fecha

    01              juan          15       01/02/2016

    01              ivan           13       02/02/2016

    01             toño           15       03/02/2016

    01              lupe           13       04/02/2016

    02              juan1         15       01/02/2016

    02              ivan1          13       02/02/2016

    02             toño1         15       03/02/2016

    03              lupe1         13       04/02/2016

    De esto necesito aquellos salarios por codigo_delegación que sumen 28 empezando por los mas viejos

    Es decir algo como el siguiente resultado

    codigo_dele  nombres  Salario  fecha

    01              juan          15       01/02/2016

    01              ivan           13       02/02/2016

    02              juan1         15       01/02/2016

    02              ivan1          13       02/02/2016

    Les agradeceré mucho su ayuda 

    sábado, 4 de marzo de 2017 0:12

Respuestas

  • Kire for,

    El ejercicio es simple de resolver si puedes obtener el valor acumulado de manera escalonada, por ejemplo:

    WITH T AS
    (
        SELECT
    	   t1.codigo_dele, t1.nombres, t1.Salario, t1.fecha,
    	   SUM(t1.Salario) OVER(PARTITION BY t1.codigo_dele ORDER BY t1.fecha) AS [Acumulado],
    	   SUM(t1.Salario) OVER(PARTITION BY t1.codigo_dele) AS [Total]
        FROM
    	   NombreTabla t1
    )
    SELECT t1.codigo_dele, t1.nombres, t1.Salario, t1.fecha 
    FROM T t1 WHERE t1.Acumulado <= 28 AND t1.Total >= 28;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 4 de marzo de 2017 0:31

Todas las respuestas

  • Kire for,

    El ejercicio es simple de resolver si puedes obtener el valor acumulado de manera escalonada, por ejemplo:

    WITH T AS
    (
        SELECT
    	   t1.codigo_dele, t1.nombres, t1.Salario, t1.fecha,
    	   SUM(t1.Salario) OVER(PARTITION BY t1.codigo_dele ORDER BY t1.fecha) AS [Acumulado],
    	   SUM(t1.Salario) OVER(PARTITION BY t1.codigo_dele) AS [Total]
        FROM
    	   NombreTabla t1
    )
    SELECT t1.codigo_dele, t1.nombres, t1.Salario, t1.fecha 
    FROM T t1 WHERE t1.Acumulado <= 28 AND t1.Total >= 28;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 4 de marzo de 2017 0:31
  • Muchas gracias por el apoyo

    un saludo cordial.


    123456

    lunes, 6 de marzo de 2017 16:35