Consulta en PL complicada
Necesito presentar las 3 ultimas compras de todos los producto de un cliente.
El problema es que el cliente puede haber comprado esos productos en diferentes tiempos y en diferentes documentos.
Ejemplo:
Arroz lo compro Mayo/2009, Marzo/2009, Enero/2009
Maiz Junio/2008, Mar/2007, Enero/2007
No importa cuando lo haya aquirido.
Para sacar estos datos hice 3 cursores
1-Trae los clientes
2. Todos los ariticulos facturados por el cliente
SELECT l.no_arti
FROM facturas f, DetalleFactura l
WHERE f.cliente = xxx
AND l.tipo_doc = f.tipo_doc
AND l.no_factu = f.no_factu
GROUP BY l.no_arti ;
3. De cada uno de estos articulos facturados
SELECT l.no_arti, l.cant, f.fecha
FROM facturas f, DetalleFactura l
WHERE f.cliente = xxx
AND l.no_arti = yyyyy
AND l.tipo_doc = f.tipo_doc
AND l.no_factu = f.no_factu
GROUP BY l.no_arti, l.cant, f.fecha
ORDER BY l.no_arti, f.fecha DESC;
La cantidad de información que recorre es grande especialmente porque la consulta anterior la recorro dos veces. Una para sacar todos los acticulos facurados por el cliente y la otra para sacar las ultimas 3 ventas de ese producto.
Lo que necesito es recorrerla una sola vez y que me de la información necesaria.
Que sugerencias me pueden dar
Gracias
El problema es que el cliente puede haber comprado esos productos en diferentes tiempos y en diferentes documentos.
Ejemplo:
Arroz lo compro Mayo/2009, Marzo/2009, Enero/2009
Maiz Junio/2008, Mar/2007, Enero/2007
No importa cuando lo haya aquirido.
Para sacar estos datos hice 3 cursores
1-Trae los clientes
2. Todos los ariticulos facturados por el cliente
SELECT l.no_arti
FROM facturas f, DetalleFactura l
WHERE f.cliente = xxx
AND l.tipo_doc = f.tipo_doc
AND l.no_factu = f.no_factu
GROUP BY l.no_arti ;
3. De cada uno de estos articulos facturados
SELECT l.no_arti, l.cant, f.fecha
FROM facturas f, DetalleFactura l
WHERE f.cliente = xxx
AND l.no_arti = yyyyy
AND l.tipo_doc = f.tipo_doc
AND l.no_factu = f.no_factu
GROUP BY l.no_arti, l.cant, f.fecha
ORDER BY l.no_arti, f.fecha DESC;
La cantidad de información que recorre es grande especialmente porque la consulta anterior la recorro dos veces. Una para sacar todos los acticulos facurados por el cliente y la otra para sacar las ultimas 3 ventas de ese producto.
Lo que necesito es recorrerla una sola vez y que me de la información necesaria.
Que sugerencias me pueden dar
Gracias
1 Respuesta
Respuesta de anubina
1