Ver Mensaje Individual
  #1  
Antiguo 24-09-2013
pame pame is offline
Registrado
NULL
 
Registrado: jul 2013
Posts: 6
Reputación: 0
pame Va por buen camino
como eliminar la duplicidad de datos

Buenos dias
Necesito ayuda, tengo mi query inventario en delphi y cuando lo hago correr en un rango de fechas se duplican los datos, porfa necesito su ayuda urgente
muchas gracias


este es el TADOquery:

Código Delphi [-]
SELECT DISTINCT fv.fecha,fc.fecha,a.cod_producto, a.nombre, a.stock, COALESCE(b.compras, 0::double precision) AS compras, COALESCE(a.ventas, 0::double precision) AS ventas, 
        CASE
            WHEN b.compras IS NULL AND a.ventas IS NULL THEN a.stock::double precision
            WHEN b.compras IS NULL THEN a.stock::double precision - a.ventas
            WHEN a.ventas IS NULL THEN a.stock::double precision + b.compras
            ELSE a.stock::double precision + b.compras - a.ventas
        END AS stock_actual

   FROM factura_vent fv, factura_comp fc,( SELECT p.cod_producto, p.nombre, p.stock, sum(v.cantidad) AS ventas
           FROM producto p
      LEFT JOIN detalle_venta v ON p.cod_producto::text = v.cod_producto::text
     GROUP BY p.cod_producto, p.nombre, p.stock) a, 
     ( SELECT p.cod_producto, p.nombre, p.stock, sum(c.cantidad) AS compras
           FROM producto p 
      LEFT JOIN detalle_compra c ON p.cod_producto::text = c.cod_producto::text
     GROUP BY p.cod_producto, p.nombre, p.stock) b
     
 WHERE (a.cod_producto::text = b.cod_producto::text) and 
  (fc.fecha between :fic and :ffc)and(fv.fecha between :fiv and :ffv)

donde:
fic: es fecha inicial de compra
ffc: es fecha fin de compra
fiv: es fecha inicial de venta
ffv: es fecha fin de venta
Responder Con Cita