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

[SOLUCIONADO] Como puedo hacer esta consulta?

Estas en el tema de Como puedo hacer esta consulta? en el foro de Mysql en Foros del Web. buenas tardes chicos, tengo el siguiente problema, tengo estas tablas: ventas, pedidos, productos y categorías. En ventas solo tengo un id que se vincula con ...
  #1 (permalink)  
Antiguo 10/12/2016, 18:47
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Como puedo hacer esta consulta?

buenas tardes chicos, tengo el siguiente problema, tengo estas tablas: ventas, pedidos, productos y categorías.

En ventas solo tengo un id que se vincula con pedidos en pedidos tengo el id del producto y la cantidad del producto consumida, en productos tengo el precio y el id de su categoría.

Me piden sacar el total de venta por categoría, estoy pensando en hacerlo con un inner join el problema que tengo es a la hora de hacer la multiplicación de la cantidad de producto por su precio que esta en la otra tabla.

Me podrían dar una idea de como lo puedo hacer?

Muchas gracias por su tiempo.
__________________
VENIMOS A APRENDER
  #2 (permalink)  
Antiguo 11/12/2016, 13:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como puedo hacer esta consulta?

Esa es una consulta sencilla, es un sum con un group by, no se como esta la estructura de tus tablas porque solo mencionas los vinculos y no se entienden bien, pero con lo que entendi seria algo mas o menos asi:

Código SQL:
Ver original
  1. SELECT SUM(total_venta) AS gran_total, categoria FROM(
  2. SELECT  (t3.cantidad*t3.precio) AS total_venta, t4.categoria FROM ventas AS t1
  3. LEFT JOIN pedidos AS t2 ON (t1.id=t2.id_venta)
  4. LEFT JOIN productos AS t3 ON (t3.id=t2.id_producto)
  5. LEFT JOIN categorias AS t4 ON (t3.categoria=t4.id)
  6. ) AS total GROUP BY categoria


te explicaria mejor si pusieras la estructura de tus tablas y un pequeño ejemplo de los datos de cada tabla y que es lo que esperas como resultado, que no somos adivinos
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 14/12/2016, 09:21
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Como puedo hacer esta consulta?

Gracias por tu respuesta, ya llevo varios dias y no puedo, aqui te dejo una imagen con mis tablas

Lo que pretendo es que con la fecha de la venta genere el corte por categoria que me imprima algo asi :

tacos normales 1000
bebidas 500

la tabla ventas se relaciona con pedidos por el tiket que en pedidos es idOrden, y pedidos se relaciona con productos por el id del producto esta tabla contiene su precio y su id de la categoria a la que pertenece.

gracias por tu ayuda.
__________________
VENIMOS A APRENDER

Última edición por VALFONSOG; 14/12/2016 a las 09:34
  #4 (permalink)  
Antiguo 14/12/2016, 09:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como puedo hacer esta consulta?

Tomando como ejemplo las tablas que tienes hice lo siguiente:

Código SQL:
Ver original
  1. CREATE TABLE #ventas
  2. (
  3. id_venta INT,
  4. fecha_venta DATE
  5. )
  6.  
  7. CREATE TABLE #pedidos
  8. (
  9. id_pedido INT,
  10. id_producto INT,
  11. id_venta INT,
  12. cantidad INT
  13. )
  14.  
  15. CREATE TABLE #productos
  16. (
  17. id_producto INT,
  18. id_categoria INT,
  19. precio INT
  20. )
  21.  
  22. CREATE TABLE #categorias
  23. (
  24. id_categoria INT,
  25. descripcion Nvarchar(20)
  26. )
  27.  
  28.  
  29. INSERT INTO #ventas VALUES (1,getdate())
  30. INSERT INTO #ventas VALUES (2,dateadd(dd,1,getdate()))
  31.  
  32.  
  33. INSERT INTO #pedidos VALUES (1,1,1,10)
  34. INSERT INTO #pedidos VALUES (2,1,1,4)
  35. INSERT INTO #pedidos VALUES (3,2,2,5)
  36. INSERT INTO #pedidos VALUES (4,1,2,3)
  37.  
  38. INSERT INTO #productos VALUES (1,1,8)
  39. INSERT INTO #productos VALUES (2,2,10)
  40.  
  41.  
  42. INSERT INTO #categorias VALUES (1,'Tacos')
  43. INSERT INTO #categorias VALUES (2,'Bebidas')
  44.  
  45.  
  46. SELECT SUM(total) AS total_categoria, descripcion, fecha_venta FROM(
  47. SELECT t2.id_pedido, t2.cantidad*t3.precio AS total, t4.descripcion, t1.fecha_venta
  48. FROM #ventas AS t1
  49. INNER JOIN #pedidos AS t2 ON (t1.id_venta=t2.id_venta)
  50. INNER JOIN #productos AS t3 ON (t2.id_producto=t3.id_producto)
  51. INNER JOIN #categorias AS t4 ON (t3.id_categoria=t4.id_categoria)
  52. ) AS completa GROUP BY descripcion,fecha_venta

Y con ese query obtengo esto:

total_categoria descripcion fecha_venta
112 Tacos 2016-12-14
50 Bebidas 2016-12-15
24 Tacos 2016-12-15


Que es lo que necesitas no???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 14/12/2016, 12:21
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Como puedo hacer esta consulta?

gracias amigo es lo que necesitaba.
__________________
VENIMOS A APRENDER

Etiquetas: join, tabla
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 13:07.