none
Error al Sumar al SQL Ayuda Urgente Gracias RRS feed

  • Pregunta

  • Buenos dias.

     Mi tengo un problema y quería saber si son amable en ayudarme por favor pues verán el problema es el siguiente

    tengo un procedimiento que me suma el total de unas cuenta pero hay unas cuentas que no me suma le pongo el procedimiento y lo que me arroja

    ALTER PROCEDURE [dbo].[comprobanteCajaChica]
    --@Nosol NVARCHAR(20),
    @fecha_ini DATE,
    @fecha_fin DATE
    as
    SELECT 
    --cc.NoSol,
    cf.cuenta,
    cf.DesCta,
    cf.Debe,
    SUM( cf.Haber) haber
    FROM
    CCH_FACTURADETALLES AS cf
    INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
    WHERE cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin AND  (SUBSTRING(cf.cuenta,1,4)='2109'AND cf.Haber>0) OR (SUBSTRING(cf.Cuenta,1,4)='6104'AND cf.Haber>0)
    group BY
    --cc.NoSol, 
    cf.cuenta,
    cf.DesCta,
    cf.Debe
    UNION ALL
    SELECT
    --cc.NoSol,
    cf.cuenta,
    cf.DesCta,
    cf.Debe,
    cf.Haber haber
    FROM
    CCH_FACTURADETALLES AS cf
    INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
    WHERE  cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin AND   cf.Debe>0


    como verán me duplica la cuenta 6104 dos veces donde me la debería sumar

    Como verán la cuenta 6104 me duplica donde en realidad me debería sumar

    Gracias espero atentamente su repuesta gracias

    jueves, 22 de septiembre de 2016 15:29

Respuestas

  • DOSA_INFORMATICA,

    ¿Has intentado quitar de la lista de agrupación la columna 'Debe'?

    ALTER PROCEDURE [dbo].[comprobanteCajaChica]    
        @fecha_ini date,
        @fecha_fin date
    AS
    BEGIN
        SELECT 	   
    	   cf.cuenta,
    	   cf.DesCta,
    	   0 AS 'DEBE',
    	   SUM(cf.Haber) AS 'HABER'
        FROM
    	   CCH_FACTURADETALLES AS cf
    	   INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
        WHERE 
    	   cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin 
    	   AND SUBSTRING(cf.cuenta,1,4) IN ('2109', '6104')
    	   AND cf.Haber > 0 
        GROUP BY	   
    	    cf.cuenta,
    	    cf.DesCta
        
        UNION ALL
        
        SELECT	   
    	    cf.cuenta,
    	    cf.DesCta,
    	    cf.Debe,
    	    0 AS 'HABER'
        FROM
    	    CCH_FACTURADETALLES AS cf
    	    INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
        WHERE  
    	   cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin 
    	   AND cf.Debe > 0
    END


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta DOSA_INFORMATICA jueves, 22 de septiembre de 2016 20:00
    jueves, 22 de septiembre de 2016 16:23

Todas las respuestas

  • DOSA_INFORMATICA,

    ¿Has intentado quitar de la lista de agrupación la columna 'Debe'?

    ALTER PROCEDURE [dbo].[comprobanteCajaChica]    
        @fecha_ini date,
        @fecha_fin date
    AS
    BEGIN
        SELECT 	   
    	   cf.cuenta,
    	   cf.DesCta,
    	   0 AS 'DEBE',
    	   SUM(cf.Haber) AS 'HABER'
        FROM
    	   CCH_FACTURADETALLES AS cf
    	   INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
        WHERE 
    	   cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin 
    	   AND SUBSTRING(cf.cuenta,1,4) IN ('2109', '6104')
    	   AND cf.Haber > 0 
        GROUP BY	   
    	    cf.cuenta,
    	    cf.DesCta
        
        UNION ALL
        
        SELECT	   
    	    cf.cuenta,
    	    cf.DesCta,
    	    cf.Debe,
    	    0 AS 'HABER'
        FROM
    	    CCH_FACTURADETALLES AS cf
    	    INNER JOIN CCH_COMPROB AS cc ON cc.NO_COMP = cf.NO_COMP
        WHERE  
    	   cc.F_COMPRO BETWEEN @Fecha_ini AND @Fecha_fin 
    	   AND cf.Debe > 0
    END


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta DOSA_INFORMATICA jueves, 22 de septiembre de 2016 20:00
    jueves, 22 de septiembre de 2016 16:23
  • Estas haciendo un UNION ALL, por lo que si esa cuenta esta en ambos conjuntos entonces aparecera dos veces. Deberas volver a agrupar/agregar la union de los dos conjuntos.

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    jueves, 22 de septiembre de 2016 17:50