Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: klaine en 11 Noviembre 2011, 21:45 pm



Título: [MYSQL] Otra forma de hacer esta consulta?
Publicado por: klaine en 11 Noviembre 2011, 21:45 pm
Hola, tengo la siguiente base de datos en mysql:

Código
  1.  
  2. CREATE DATABASE IF NOT EXISTS verduleros;
  3.  
  4. DROP TABLE IF EXISTS ventas2;
  5.  
  6. CREATE TABLE ventas2(
  7.  
  8. idventa INT NOT NULL PRIMARY KEY,
  9. vendedor VARCHAR(255) NOT NULL,
  10. producto VARCHAR(255) NOT NULL,
  11. fecha DATE NOT NULL,
  12. kilos INT NOT NULL
  13.  
  14. )engine=innodb;
  15.  
  16.  


La consulta que quiero realizar segun el planteamiento es:

"Desplegar la suma de los kilos de cada producto que ha vendido cada vendedor"

Para ello pense en la siguiente consulta:

Código
  1. SELECT v.vendedor, v.producto,
  2. SUM(v.kilos)
  3. FROM ventas2 AS v
  4. WHERE v.kilos IN
  5. (SELECT kilos FROM ventas2 WHERE vendedor=v.vendedor AND
  6. producto=v.producto)
  7. GROUP BY vendedor
  8. ;
  9.  

El problema es que la base de datos es muy grande xD, probé la lógica de esta
consulta en una tabla pequeña y funciona, pero en la base de datos que nos entregó el profe esperé alrededor de unos 20 minutos y no me mostró nada,
lo intenté en reiteradas veces, probé a reiniciar el pc y nada, la base de datos es muy grande por lo tanto no puedo hacer esto con subconsultas (y, pensandolo, si la consulta por si sola se demora, hacer por cada fila una subconsulta es descabellado xD), se los agradecería enormemente si es posible hacer esto de otra forma.

Saludos!


Título: Re: [MYSQL] Otra forma de hacer esta consulta?
Publicado por: fran800m en 12 Noviembre 2011, 15:07 pm
No te voy a decir la consulta porque creo que no te ayudaría, pero te doy pistas.

Párate a pensar que quiera la suma para cada vendedor y cada producto.

La consulta es mucho más sencilla que lo que tienes hecho, cuando caigas te darás con la cabeza contra la pared  ;)