Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/05/2009, 19:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Se podrá Evitar Consultas Anidadas ? ? ?

Por empezar, el For/Next no existe en una consulta SQL. Sí existen iteraciones en los store procedures, pero so innecesarios en este caso.
Según entiendo, lo que quieres hacer es obtener para un cliente, el listado completo de productos que compró, con la suma total se compras del cliente. ¿Es así?
Ese tipo de consultas son simples, se hacen por agrupamiento, y si no las quieres paginadas, sino como reporte global, es fácil.
Un reporte discriminado por artículo, con la suma de compras por cliente, mas la suma total de ventas sería mas o menos así:
Código SQL:
Ver original
  1. SELECT NOMBRE, ID_ARTICULO, COUNT(*) CANTIDAD, FECHA, SUM(IMPORTE) IMPORTE
  2. FROM VENTAS
  3. GROUP BY NOMBRE, ID_ARTICULO WITH ROLLUP;
Esto debería devolverte un listado de todos los clientes con los artículos que compró, sus cantidades discriminadas y la suma pagada por cada tipo, más una línea donde esté es subtotal (separando cada cliente ) y una línea de subtotal.
Para hacer un reporte mejor, hay que hacerlo con subconsultas forzosamente, pero para darte sugerencias deberías postear la estructura de tablas involucradas y darnos una idea de qué es lo que debe mostrar exactamente el reporte.
De todos modos quería que vieras que ciertas cosas se pueden hacer sin demasiadas complicaciones desde la misma base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)