Ayuda consulta en access

webanet79

Bovino adolescente
#1
Hola a todos, ojalá alguien pueda echarme una manita. desde ya, Gracias

Resulta que tengo una base de datos, y deseo hacer una consulta que me muestra en un determinado periodo de tiempo, la cantidad vendida de cada uno de los productos, osea, ya la hice, pero si hubo en ese periodo diferentes ventas de un producto me muestra un renglon por cada vez que se vendio ese producto mostrando la cantidad vendida, y lo que yo deseo es que me agrupe los productos y me diga el total de unidades vendidas.

lo quisiera ver asi

CERVEZA 15
COCA 10
CHICLE 9

pero me sale asi...



Uploaded with ImageShack.us
 
#4
hola

fijate en un boton que dice SQL, si es una version muy moderna de Acces es posible que se encuentre como una opcion en el Sub menu tipo Boton que diga 'Ver'

una vez lo ubiques, te desplegará el texto de la consulta sql que estas armando visualmente, seria muy util si la copiaras al pie de la letra y la pegaras aquí, asi te indico cómo la debes actualizar

tu consulta en realidad es a fin de cuentas ese codigo Sql, la herramienta visual que tu ves, es solo un medio para poder construir la sentencia sql y sin tener un pleno conocimiento de sql, pero si teniendo un domino conceptual del modelo de tablas relacionadas

te sugiero, que pegues aqui el sql, y te lo regreso modificado, antes respaldas ese codigo, o haces copia de la consulta tal como está para que no la pierdas, y despues creas una nueva consulta y le pegas el codigo que yo te podría enviar si tu quieres, en su texto sql, para que no pierdas la que esta hecha aunque este a medio andar, aun asi te sirve tenerla por cuestiones didácticas

el boton sql, solía aparecer en el editor visual de consultas en acces de office 2003 desde versiones anteriores pero en algun momento lo pusieron como una opcion de submenu desplegable, con esos paneles tan paranfernalicos

por otro lado, te deberia dar la opcion 'cuenta' en el editor visual, para poder hacerla sin ver el sql, pero no lo veo en la imagen de imageshak
 

webanet79

Bovino adolescente
#5
SELECT Productos.Codigo, Productos.NOMBRE, RemisionesDet.rdCantidad, Productos.Tipo
FROM Remisiones INNER JOIN (Productos INNER JOIN RemisionesDet ON Productos.Codigo = RemisionesDet.rdProducto) ON Remisiones.rFolio = RemisionesDet.rdFolio
GROUP BY Productos.Codigo, Productos.NOMBRE, RemisionesDet.rdCantidad, Productos.Tipo, Remisiones.rFecha
HAVING (((Remisiones.rFecha) Between [Fecha inicial] And [Fecha Final]))
ORDER BY RemisionesDet.rdCantidad DESC;
 
#8
prueba asi amigo



SELECT Productos.Codigo, Productos.NOMBRE, Sum(RemisionesDet.rdCantidad) AS SumaDerdCantidad, Productos.Tipo
FROM Remisiones INNER JOIN (Productos INNER JOIN RemisionesDet ON Productos.Codigo=RemisionesDet.rdProducto) ON Remisiones.rFolio=RemisionesDet.rdFolio


WHERE (((Remisiones.rFecha) Between [Fecha inicial] And [Fecha Final]))

GROUP BY Productos.Codigo, Productos.NOMBRE, Productos.Tipo
ORDER BY Sum(RemisionesDet.rdCantidad) DESC;



si no funcionase, simplemente pegas el anterior

aunque yo estimo que si funciona

suerte
 

webanet79

Bovino adolescente
#9
prueba asi amigo



SELECT Productos.Codigo, Productos.NOMBRE, Sum(RemisionesDet.rdCantidad) AS SumaDerdCantidad, Productos.Tipo
FROM Remisiones INNER JOIN (Productos INNER JOIN RemisionesDet ON Productos.Codigo=RemisionesDet.rdProducto) ON Remisiones.rFolio=RemisionesDet.rdFolio


WHERE (((Remisiones.rFecha) Between [Fecha inicial] And [Fecha Final]))

GROUP BY Productos.Codigo, Productos.NOMBRE, Productos.Tipo
ORDER BY Sum(RemisionesDet.rdCantidad) DESC;



si no funcionase, simplemente pegas el anterior

aunque yo estimo que si funciona

suerte
**********************************

De perlas... funcionó de maravilla... te agradezco mucho.

y abusando.. para hacer lo contrario.. es decir, que muestre los que NO SE VENDEN en un determinado periodo de tiempo, pues intenté usar Null, pero no pude....

como quiera.. mil gracias...
 
#10
Podria ser preguntando si la suma es null -a veces se hace asi-, aunque en lenguaje sql tambien se suele utilizar o un Outer Join o un Not In


De todas maneras en el editor visual del diseño de la consulta, en la opcion Total de la tercera columna, en rdCantidad en el lugar en el que dice 'Agrupar Por', alguien te pudo sugerir que seleccionaras la opcion 'Suma', eso te habria ingresado Sum(rdCantidad) y eso

pero eso no habria dado lo que requerias por que por un tema de lenguaje sql, habia que sacar el campo fecha del los campos de Group By, y poner la condicion Between Fecha inicio y Fin en un Where en lugar de un Having como la codifico el generador automatico del editor visual, y eso el editor no lo habria hecho, y te habria dado un grupo de sumatorias de las Remisiones de cada dia, y cada sumatoria separada para cada dia en el intervalo buscado...por lo mismo el editor de diseño es bien poco maleable


te digo la respuesta a tu pregunta en unos cinco minutos

Editado: esto ultimo ya lo modifique por que al principio no me explique muy bien
 
#11
Me retracto, el editor visual si puede al parecer, pero utilizando la Opcion 'Donde' en la lista de 'Todo' para el campo 'rFecha' en vez de la opcion 'Agrupar Por'

subestime al Editor Visual talvez por que la verdad no lo se utilizar XD o estoy muy apegado al formato sql
 
#12
Yo la codificaría así

SELECT Productos.Codigo, Productos.NOMBRE, Productos.Tipo
FROM Productos
WHERE (((Productos.Codigo) Not In (
select RemisionesDet.rdProducto
From RemisionesDet INNER JOIN Remisiones ON Remisiones.rFolio=RemisionesDet.rdFolio
WHERE (Remisiones.rFecha) Between [Fecha inicial] And [Fecha Final]
)));
 
Arriba