Ver Mensaje Individual
  #5  
Antiguo 14-07-2004
rogeriobeltran rogeriobeltran is offline
Miembro
 
Registrado: dic 2003
Ubicación: Bucaramanga-Santander-Colombia
Posts: 49
Reputación: 0
rogeriobeltran Va por buen camino
Inconvenientes con SQL UNION

Buenas:

Que pena me di cuenta que la información que made estaba incompleta.

1. El motor de la Base es FireBird
2. Lo que deseo realizar es tener en un solo registros las ventas, la cantidad de ventas, el descuento y la cantidad de descuento.

Código:
SELECT FECHAVENTA, CAJA, CODIGOCAJERO,  TIPOARTICULO,
SUM(CANTIDADDESCUENTO) AS CANTIDADDESCUENTO,
SUM(DESCUENTO) AS DESCUENTO,
SUM(CANTIDADVENTAS) AS CANTIDADVENTAS,
SUM(VENTAS) AS VENTAS

FROM
 (

SELECT D.FECHAVENTA, C.NOMBRE AS CAJA, D.CODIGOCAJERO,  T.CODIGO||T.NOMBRE AS TIPOARTICULO,
0 AS CANTIDADDESCUENTO,
0.0 AS DESCUENTO,
COUNT(*) AS CANTIDADVENTAS,
SUM(D.CANTIDAD*D.PRECIOUNITARIO) AS VENTAS
FROM DetalleEncabezado D, CAJA C, TIPOARTICULO T
WHERE (D.FECHAVENTA='07/08/04')
AND (C.CODIGO=D.CODIGOCAJA)
AND (T.CODIGO=D.CODIGOTIPOARTICULO)
GROUP BY D.FECHAVENTA, C.NOMBRE, D.CODIGOCAJERO, T.CODIGO,T.NOMBRE

UNION

SELECT D.FECHAVENTA, C.NOMBRE AS CAJA, D.CODIGOCAJERO,  T.CODIGO||T.NOMBRE AS TIPOARTICULO,
COUNT(*) AS CANTIDADDESCUENTO,
SUM(( (D.CANTIDAD*D.PRECIOUNITARIO)*(D.Descuento/100))+( (D.CANTIDAD*D.PRECIOUNITARIO)- (D.CANTIDAD*D.PRECIOUNITARIO*(D.Descuento/100)))*(D.Descuentoencabezado/100)) AS DESCUENTO,
0 AS CANTIDADVENTAS,
0.0 AS VENTAS
FROM DetalleEncabezado D, CAJA C, TIPOARTICULO T
WHERE (D.FECHAVENTA='07/08/04')
AND (C.CODIGO=D.CODIGOCAJA)
AND (T.CODIGO=D.CODIGOTIPOARTICULO)
AND ((D.Descuento > 0) OR (D.descuentoencabezado>0))
GROUP BY D.FECHAVENTA, C.NOMBRE, D.CODIGOCAJERO, T.CODIGO,T.NOMBRE

)

GROUP BY FECHAVENTA, CAJA, CODIGOCAJERO,  TIPOARTICULO
Pense que con el anterior codigo tenia solucionada el inconveniente y no me presenta error de sql y me dice que es en la linea 10 en el caracter 1, es decir en el primer SELECT de la union.

Gracias por la colaboración

Rogerio
Responder Con Cita