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

Necesito que me sulucionen una consulta

Estas en el tema de Necesito que me sulucionen una consulta en el foro de Mysql en Foros del Web. Esta es la consulta que tengo que hacer: Devolver el Nº mas vendido por cada modelo de zapato. Estas son mis tablas: zapato (códigoZap, tipo, ...
  #1 (permalink)  
Antiguo 18/06/2009, 12:54
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Necesito que me sulucionen una consulta

Esta es la consulta que tengo que hacer:
Devolver el Nº mas vendido por cada modelo de zapato.
Estas son mis tablas:

zapato (códigoZap, tipo, color, modelo, precioZap)
númZapato (númeroZap)
venta (códigoZap, númeroZap, númF, cantidad, precio )
factura (númF, fecha, monto, número)

desde ya muchas gracias.
  #2 (permalink)  
Antiguo 18/06/2009, 13:01
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Necesito que me sulucionen una consulta

Pruébalo y me dices...

SELECT numeroZap, MAX(cantidad) FROM venta LIMIT 1

Saludos!
  #3 (permalink)  
Antiguo 18/06/2009, 13:12
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Necesito que me sulucionen una consulta

No, no me lo resuelve porque necesito el Nº mas vendido pero por cada modelo de zapato
  #4 (permalink)  
Antiguo 18/06/2009, 13:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Necesito que me sulucionen una consulta

Prueba esta.

Código mysql:
Ver original
  1. select codigozap,numerozap,max(cantidad) from venta group by codigozap;

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 18/06/2009, 13:14
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Necesito que me sulucionen una consulta

Ok, lo entendí mal, ahora te lo modifico.
  #6 (permalink)  
Antiguo 18/06/2009, 13:20
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Necesito que me sulucionen una consulta

A ver si así te lo hace

SELECT DISTINCT(zap.modelo), max(ven.cantidad) FROM zapato zap
INNER JOIN venta ven ON ven.codigoZap = zap.codigoZap;


Saludos!
  #7 (permalink)  
Antiguo 18/06/2009, 13:26
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Necesito que me sulucionen una consulta

Estamos mas serca, pero yo necesito en numero de zapato mas vendido por cada modelo de zapato. o sea que yo voy a tener el modelo y el numero mas vendido por cada uno de estos.
o sea:

modelo | numeroZap (numero (de tamaño) de zapato mas vendido)
|

Última edición por n_euge; 18/06/2009 a las 13:38
  #8 (permalink)  
Antiguo 18/06/2009, 15:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Necesito que me sulucionen una consulta

Código sql:
Ver original
  1. SELECT t1.modelo, t1.numeroZap, t1.maximo FROM (SELECT modelo, numeroZap, COUNT(numeroZap) maximo FROM tabla GROUP BY modelo, numeroZap ORDER BY maximo DESC, modelo, numeroZap)t1 GROUP BY t1.modelo

Esta propuesta tiene un inconveniente, que cuando dos números tienen la misma cantidad y esa es la máxima, sólo te aparece uno. Seguiremos buscando, aunque algo parecido lo consiguió quimfv con una maravillosa consulta que el tildó de poco elegante, pero que os aseguro que funciona.
http://www.forosdelweb.com/f86/como-...repita-579381/

Última edición por jurena; 18/06/2009 a las 15:25
  #9 (permalink)  
Antiguo 18/06/2009, 16:26
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Necesito que me sulucionen una consulta

Vi que se podria hacer con Vista pero no se bien como usarlas. Podrian ayudarme. Gracias
  #10 (permalink)  
Antiguo 19/06/2009, 16:16
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Necesito que me sulucionen una consulta

Bueno..
Al parecer la he conseguido. Hice pocas pruebas pero parece funcionar bien.

Código mysql:
Ver original
  1. SELECT z.modelo,v.numerozap,max(v.cantidad)maximo
  2. FROM venta v inner join zapato z
  3. using(codigozap)
  4. group by v.numerozap
  5. having (v.numerozap,maximo)
  6. in(select numerozap,max(cantidad) from venta
  7.  where (codigozap,cantidad)
  8.  in(select codigozap,max(cantidad) from venta
  9. group by codigozap) group by numerozap);

Cuentanos como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 20/06/2009, 00:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Necesito que me sulucionen una consulta

Creo que hay un problema y que nos lo tiene que explicar n_euge. La cantidad de zapatos de un modelo, ese campo llamado cantidad de venta parece ser un campo relacionado con factura. Eso quiere decir que puede haber otras facturas que hayan vendido el mismo número y modelo, y habría en esa tabla venta otros registros que hicieran referencia a ese modelo y número. Eso obliga a sumar esos datos, es decir a utilizar sum sobre esa tabla agrupando por codigozap y numerozap. Parece que lo registros de esa tabla venta sirven como línea de factura.
Yo he adaptado la consulta de quimfv a este caso y creo que funciona también para el caso de que haya dos o más números que tengan el máximo de ventas para un modelo.
Código sql:
Ver original
  1. SELECT z.modelo, t2.codigozap, t3.numerozap, t2.canti
  2.    FROM (SELECT codigozap, MAX(cant) canti
  3.       FROM (SELECT codigozap, numerozap, SUM(cantidad) cant
  4.          FROM `venta` GROUP BY codigozap, numerozap)t1 GROUP BY codigozap)t2
  5. INNER JOIN (SELECT codigozap, numerozap, SUM(cantidad)canti FROM venta GROUP BY codigozap, numerozap)t3
  6.    ON t2.codigozap = t3.codigozap AND t2.canti=t3.canti INNER JOIN zapato z ON z.codigozap = t2.codigozap

Última edición por jurena; 20/06/2009 a las 00:44
  #12 (permalink)  
Antiguo 23/06/2009, 18:21
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Necesito que me sulucionen una consulta

CREATE VIEW NumeroyModelo AS
SELECT codigoZap,cantidad,modelo,numeroZap
FROM (venta NATURAL JOIN zapato)GROUP BY modelo,numeroZap,cantidad;

SELECT modelo, numeroZap, MAX(cantidad) AS mayor
FROM NumeroyModelo GROUP BY modelo;

Esto es lo que hice y haci funciona. pero creo que no tengo muy bien definido la vista.??
Gracias por las demas soluciones!! me ayudaron un montón!
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 11:15.