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