xD
es el mismo que habias colocado antes, osea que yo no lei bien
segun entiendo el enunciado,entonces el articulo (como el enunciado lo dice ) no tiene que ir agrupado.
digamos que vendio A0001 3 veces
Ventas del Dia:dd/mm/aaaa
DNI:11.111.111z Nombre: cliente
Direccion: Poblacion: Provincia:
codigo - cantidad - precio - valor
A0001 1 10 10
A0001 10 10 100
A0001 100 100 10000
total: 11100
segun entiendo lo que deberias hacer serian dos consultas, una para cabecera y pie de reporte y la otra para sacar el detalle de la venta.
Para cabecera
SELECT cl.dni, cl.nombre, cl.direccion, cl.poblacion, cl.provincia, SUM(v.cantidadvendida*a.precio) TOTAL
FROM articulos a, ventas v, clientes cl
WHERE cl.dni=v.dni
AND a.codigo=v.codigo
GROUP BY cl.dni, cl.nombre, cl.direccion, cl.poblacion, cl.provincia, a.descripcion
ORDER BY v.codi,a.descripcion
para detalle
SELECT v.codigo, a.descripcion, v.cantidadvendida, a.precio, (v.cantidadvendida*a.precio) valor
FROM articulos a, ventas v, clientes cl
WHERE cl.dni=v.dni AND a.codigo=v.codigo
ORDER BY v.codi,a.descripcion;
claro que esta incompleto, porque nose como manejar las cosas en oracle, pero creo que todo lo demas que tienes de codigo es para dejar un cliente en una sola pagina, porque en estas dos consultas se toman todos los clientes, y no sabemos quien en quien en la de detalle, creo que seria necesario en la consulta de detalle colocar solamente el codigo del cliente, y asi en el reporte hacer la agrupacion,en los reportes que yo suelo usar puedes agrupar datos pero no como hace el group by.
En la consulta hay mas de un codigo de cliente (en las dos consultas), y al agruparlos en el reporte, alli se separan, nose si me entiendes?
que gestor para reportes usas ? oracle ya tiene el suyo?
a menos que filtres el cliente que quieres ver en el where
WHERE v.dni=0001
porque con el
WHERE cl.dni=v.dni
tomas todos los clientes
salu2