Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Diferentcia dos consultas en access 2007

Estas en el tema de Diferentcia dos consultas en access 2007 en el foro de Bases de Datos General en Foros del Web. Hola a tod@s, Tengo dos consultas hechas con access 2007. La "Consulta de compra" me muestra los datos de todos los productos comprados, es decir, ...
  #1 (permalink)  
Antiguo 07/07/2010, 09:22
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Diferentcia dos consultas en access 2007

Hola a tod@s,

Tengo dos consultas hechas con access 2007.
La "Consulta de compra" me muestra los datos de todos los productos comprados, es decir, el ID Producto, Nombre del producto y Cantidad de compra.
La "Consulta Productos Vendidos" me muestra los datos de los productos vendidos, es decir, el ID del Pedido, Nombre del producto y Cantidad Vendidos.

Hay un campo en común en las dos consultas, "Nombre del producto".
¿Cómo puedo hacer para que me haga una resta y así poder tener el control de mi stock? Por ejemplo, compro 3 manzanas, vendo 2 manzanas -> me queda 1 manzana.

Muchas gracias de antemano a toda la gente!!!!!!!!1
  #2 (permalink)  
Antiguo 08/07/2010, 00:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferentcia dos consultas en access 2007

No nos dices cómo controlas lo que es comprado de lo vendido. ¿Qué campo o dato de campo sirve para diferenciarlos? Acláranos eso.
  #3 (permalink)  
Antiguo 08/07/2010, 11:21
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Sonrisa Respuesta: Diferentcia dos consultas en access 2007

Hola Jurena,

Lo que compro lo introduzco en una tabla, llamada "Productos" a través de un formulario y hay tengo los siguientes campos: IdProductos, Nombre del producto, Modelo, Cantidad de Compra y Fecha de compra.
Lo que vendo lo introduzco en un tabla, llamada "Pedidos" a traves de un formulario y hay tengo los siguientes campos: IdPedido, Nombre del producto, Nombre de comprador y Cantidad Vendida.
Como puedes ver, son dos tablas diferentes. Una tabla llamad Productos para controlar lo que compro, y un tabla llamada Pedidos, para controlar lo que vendo.
En ambas tablas se encuentra "Nombre del producto". Por eso a la hora de hacer la consulta hay un campo que es común -> "Nombre del producto".

Muchas gracias y un saludo!!!
  #4 (permalink)  
Antiguo 08/07/2010, 14:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferentcia dos consultas en access 2007

Llamo los campos como creo que tú los has llamado.

SELECT t1.prod, ( t1.cantcomprado - t2.cantvendida) AS resto
FROM [SELECT Productos.[Nombre del producto] AS prod, Sum(Productos.cantidad) AS cantcomprado
FROM Productos GROUP BY Productos.[Nombre del producto]]. AS t1 INNER JOIN [SELECT Pedidos.[Nombre del producto] AS ped, Sum(Pedidos.[cantidad vendida]) AS cantvendida
FROM Pedidos GROUP BY Pedidos.[Nombre del producto]]. AS t2 ON t1.prod = t2.ped;

No he controlado productos que no se hayan vendido. Lo he probado en Access 2003
  #5 (permalink)  
Antiguo 09/07/2010, 10:17
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Diferentcia dos consultas en access 2007

Hola Jurena,

Se que lo has hecho con la mejor intención del mundo, pero no entiendo nada!! Lo siento mucho.
¿Donde tengo que poner ese código?
Por ejemplo yo cuando voy a hacer un pedido, tengo mi formulario, en el cual elijo el producto que tengo con un despleglable. Si a mi ya no me queda cantidad de un producto, no quiero que me salga el nombre del produco en el despleglable.

¿Cómo lo puedo hacer?
Muchas gracias por todo. Estoy seguro que piensas que es muy facil hacer lo que te pido, pero desconozco como hacerlo. No tengo muchos conocimientos sobre acces.
Muchas gracias de nuevo!!!!
  #6 (permalink)  
Antiguo 09/07/2010, 15:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferentcia dos consultas en access 2007

Lo primero es que el selector de producto dependerá de una consulta similar a esta. Pero ahora olvídate de esto.
Primero que nada, crea una consulta y luego pulsa para ver el SQL y escribe lo que te he puesto, si es que tus campos y tablas tienen los nombres que yo he usado, que creo que sí.
Ejecuta la consulta y me dirás si los resultados son los esperados. Si funciona, sólo tendremos que controlar que cuando el resto sea uno o más de uno, aparezca el producto en el selector.
  #7 (permalink)  
Antiguo 12/07/2010, 06:11
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Diferentcia dos consultas en access 2007

Hola Jurena,

He creado la consulta con SQL como tú bien me has dicho, pero al guardarla me da un error de sintasis:
Microsoft Oficce Access
Corchetes no validos en el nombre 'SELECT Productos.Nombre del producto'.

¿Tenemos algo mal en el codigo?

Muchas gracias por la paciencia!!
Un saludo,
  #8 (permalink)  
Antiguo 12/07/2010, 10:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferentcia dos consultas en access 2007

dime cuáles son los nombres de las tablas y los campos. Yo tengo esto funcionando, aunque, como te dije, en una base de datos Access 2003:
SELECT t1.prod, ( t1.cantcomprado - t2.cantvendida) AS resto
FROM [SELECT Productos.[Nombre del producto] AS prod, Sum(Productos.cantidad) AS cantcomprado
FROM Productos GROUP BY Productos.[Nombre del producto]]. AS t1 INNER JOIN [SELECT Pedidos.[Nombre del producto] AS ped, Sum(Pedidos.[cantidad vendida]) AS cantvendida
FROM Pedidos GROUP BY Pedidos.[Nombre del producto]]. AS t2 ON t1.prod = t2.ped;
  #9 (permalink)  
Antiguo 13/07/2010, 01:17
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Diferentcia dos consultas en access 2007

Hola Jurena,

Los nombres de las tablas son "Producto" y "Pedidos".
Dentro de la tabla "Productos" tengo los siguientes campos:
"Nombre", "Cantidad Comprada"

Dentro de la tabla "Pedidos" tengo los siguientes campos:
"Nombre producto", "Cantidad Entregada producto"

En las dos tablas tengo más datos, pero me imagino que no son necesarios. Si los necesitas, dimelo que te los pongo.
Si tu crees que sería más facil hacer el calculo, añadiendo algún dato especifico en la tabla Productos en la tabla Pedidos, comentamelo. Seguro que se puede mejorar.

Muchas gracias,
Un saludo,
  #10 (permalink)  
Antiguo 13/07/2010, 01:55
 
Fecha de Ingreso: julio-2010
Mensajes: 104
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Diferentcia dos consultas en access 2007

Buenos días,

No me lo puedo creer, te ha escrito la consulta enterita con los nombres adaptados a los tuyos y escribes lo siguiente...

"¿Tenemos algo mal en el codigo?": pero si te ha hecho la consulta y tu por ahora sólo has puesto el nombre de los campos.

"Seguro que se puede mejorar": Sí, seguro. También te puede tunear la base de datos.

Un saludo y buen día.
  #11 (permalink)  
Antiguo 13/07/2010, 08:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Diferentcia dos consultas en access 2007

A ver, como te sugiere ioel10, sólo tenías que haber cambiado los nombres que te puse por los de tus tablas y campos. Ahora vuelvo a adaptarlo a lo que me dices en tu último post. Prueba esto y nos dices qué ocurre:

SELECT t1.prod, ( t1.cantcomprado - t2.cantvendida) AS resto
FROM [SELECT Producto.[Nombre] AS prod, Sum(Producto.cantidad Comprada) AS cantcomprado
FROM Producto GROUP BY Producto.[Nombre]]. AS t1 INNER JOIN [SELECT Pedidos.[Nombre producto] AS ped, Sum(Pedidos.[Cantidad Entregada producto]) AS cantvendida
FROM Pedidos GROUP BY Pedidos.[Nombre producto]]. AS t2 ON t1.prod = t2.ped;

Última edición por jurena; 13/07/2010 a las 09:08

Etiquetas: 2007, access
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:58.