none
obterner resta de dos Sums con diferentes condiciones RRS feed

  • Pregunta

  • LO que necesito hacer es que la consulta me devuelva el nombre de la persona, luego sume la columna cantidad que me debe y le reste al ese total la suma de lo pagado

    select NOmbre, ((select SUM (cantidad) where estado like 'Debe') - (Select Sum (cantidad) where estado like 'Pagado' )) as Total from Table_1 where NOmbre like 'dato' group by NOmbre
    • Cambiado Joyce_AC viernes, 5 de mayo de 2017 15:51
    jueves, 4 de mayo de 2017 17:24

Todas las respuestas

  • Agustin666,

    Evita las sub-consultas, no las necesitas:

    SELECT 
        t1.Nombre,
        SUM(CASE WHEN t1.estado = 'Debe' THEN t1.cantidad END) - 
        SUM(CASE WHEN t1.estado = 'Pagado' THEN t1.cantidad END) AS [Total]
    FROM 
        Table_1 t1
    WHERE 
        t1.Nombre LIKE 'dato'
    GROUP BY 
        t1.Nombre;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 4 de mayo de 2017 17:32
  • me aparece este error: "Palabra clave WHEN no reconocida."

    aclaro algo "estoy trabajando con access"

    jueves, 4 de mayo de 2017 20:52
  • Hola

    Es importante que pongas de que producto hablamos al poner una pregunta. Morales te puso una respuesta pensando en SQL Server, y Access no soporta el comando CASE

    Mira en la ayuda la función IIf (o Si Inmediato en el editor de expresiones).

    Otra opción es que te programes una función en VBA que te busque los datos según tus criterios. Pero eso cuando no tengas más opción.

    Salu2,


    José Mª Fueyo [MS MVP Access]

    miércoles, 10 de mayo de 2017 9:19