Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como eliminar la duplicidad de datos (https://www.clubdelphi.com/foros/showthread.php?t=84237)

pame 24-09-2013 16:37:49

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

juanlaplata 30-09-2013 18:57:03

No veo en que momento se hace join de facturas con detalles ....
EJ (fv.cod_factura = a.cod_factura)
siendo fv = factura_vent
y a =
Código SQL [-]
( 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 )


La franja horaria es GMT +2. Ahora son las 22:39:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi