SELECT o.codigo, a.existencia, a.ult_costo, a.desc_larga,sum(vd.cantidad) as cantidad,
CAST(SUM(vd.cantidad*vd.precio*(1-vd.descuento/100))
AS numeric(15,4))
AS importe,
CAST(SUM(vd.cantidad*a.ult_costo)
AS numeric (15,4))
AS costo from ventasdet vd
LEFT JOIN ventas v ON vd.venta = v.clave
LEFT JOIN articulos a ON vd.articulo = a.clave
LEFT JOIN comprobantes c ON c.venta = vd.venta
LEFT JOIN codigos o ON (a.clave = o.articulo AND o.tipo='P')
WHERE (v.fecha >= :FechaIni) AND (v.fecha <= :FechaFin)
AND (o.codigo >= :CodigoIni) AND (o.codigo <= :CodigoFin)
AND (v.estatus = 'A')
AND c.tipo NOT IN ('C','A') AND (c.estatus='A')
GROUP BY o.codigo, a.existencia, a.desc_larga, a.ult_costo