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

Como obtener el producto mas vendido

Estas en el tema de Como obtener el producto mas vendido en el foro de Bases de Datos General en Foros del Web. Buenas tardes amigos... Este es mi primer foro en foros del web... es muy buen foro porque aqui eh encontrado muchas soluciones a mis inquietudes... ...
  #1 (permalink)  
Antiguo 12/11/2009, 16:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Como obtener el producto mas vendido

Buenas tardes amigos... Este es mi primer foro en foros del web... es muy buen foro porque aqui
eh encontrado muchas soluciones a mis inquietudes... y pues desde hoy pertenezco a este foro y
me gustaria aclarar unas dudas importantes de consultas SQL, sobre una consulta pues que se
supone que es relativamente facil pero no he podido solucionarlo.

Bueno Todo esta sobre mysql.... Pongo la estructura de las tablas, es una consulta de dos
tablas.....

Código blue:
Ver original
  1. CREATE TABLE `articulo` (
  2.   `COD_ART` char(6) NOT NULL,
  3.   `nom_art` char(80) NOT NULL,
  4.   `STOCK` int(11) default NULL,
  5.   `STOCK_MIN` int(11) default NULL,
  6.   `STOCK_MAX` int(11) default NULL,
  7.   `ROTACION` int(11) default NULL,
  8.   `VAL_COS` decimal(8,3) default NULL,
  9.   `VAL_IVA` decimal(8,3) default NULL,
  10.   `VAL_UTI` decimal(8,3) default NULL,
  11.   PRIMARY KEY  (`COD_ART`)
  12. );

Código blue:
Ver original
  1. CREATE TABLE `articulos_facturados` (
  2.   `NUM_FAC` int(11) NOT NULL,
  3.   `COD_ART` char(6) NOT NULL,
  4.   PRIMARY KEY  (`NUM_FAC`,`COD_ART`),
  5.   KEY `FK_ARTICULOS_FACTURADOS2` (`COD_ART`)
  6. );

Bueno la cuestion es la siguiente, quiero saber el nombre del producto mas vendido..... es decir
la consulta es entre las dos tablas... entonces mi solucion es la siguiente...
Cuento en articulos_facturados los codigos de articulos (cod_art) y pues agrupo para tener
la cantidad vendida de cada articulo, pero lo que no he podido hacer es de ese listado
resultante poder selecionar el mas vendido... osea los mayores....

aqui esta la sentencia select

Código yellow:
Ver original
  1. select nom_art, count(articulos_facturados.cod_art) as cantidad from
  2. articulos_facturados natural join articulo
  3. group by articulos_facturados.cod_art;

y este es el resultado

Código green:
Ver original
  1. nom_art           cantidad

Código gray:
Ver original
  1. Cebolla caramelizada marca Ibsa       2
  2. Crema corporal de aloe vera marca Instituto Españo    2  
  3. Crema de cacao fondant marca Intermon Oxfan     2
  4. Embutidos vegetarianos marca Ahimsa    2
  5. Galletas de chocolate Dibus, marca Gullón    2
  6. Harina para hacer bizcochos (Harimsa)      2
  7. Harina para hacer pizza (Harimsa)     2
  8. Galletas María Bio marca Gullón     1
  9. Hamburguesas vegetales Sojasun    1
  10. Harira marca Ideal     1
  11. Margarina de soja marca Vivesoy     1
  12. Paella de verduras marca Frudesa     1
  13. Pan de molde marca de Alcampo    1  
  14. Pan integral malteado Grainseeds marca Espigas     1
  15. Pastas de té con chocolate marca Gerblé      1
  16. Paté de Tofu al ajillo     1
  17. Pizza vegetariana congelada marca Alcampo   1

Entonces se supone que por medio de la clausula having se podria filtar este grupo para
sacar el mayor(o mayores) para la consulta que deseo.. lo cual no he podido lograrlo....

Me gustaria q me ayudaran a resolver esta inquitud....
pues en mi caso del grupo que aparece arriba como resultado de la consulta me deberian
aparecer todos los registros mayores osea los de numero 2, en este caso.

Código blue:
Ver original
  1. nom_art             cantidad
Código yellow:
Ver original
  1. Cebolla caramelizada marca Ibsa       2
  2. Crema corporal de aloe vera marca Instituto Españo    2  
  3. Crema de cacao fondant marca Intermon Oxfan     2
  4. Embutidos vegetarianos marca Ahimsa    2
  5. Galletas de chocolate Dibus, marca Gullón    2
  6. Harina para hacer bizcochos (Harimsa)      2
  7. Harina para hacer pizza (Harimsa)     2

Código red:
Ver original
  1. Algo importante que no sea having cantidad >=2  ; sino que sea automatico,
  2. osea si yo vendo mas productos de los mismos entonces cuando haga la misma consulta el me
  3. arroje lo que buscamos...el producto o productos de mayor venta...

  #2 (permalink)  
Antiguo 12/11/2009, 17:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Como obtener el producto mas vendido

SELECT nom_art, count(articulos_facturados.cod_art) as cantidad FROM
articulos_facturados INNER JOIN articulo USING(cod_art)
GROUP BY articulos_facturados.cod_art HAVING cantidad = (SELECT count(*) from articulos_facturados GROUP BY cod_art ORDER BY count(*) DESC LIMIT 1)

No lo he probado
  #3 (permalink)  
Antiguo 12/11/2009, 17:43
 
Fecha de Ingreso: noviembre-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Como obtener el producto mas vendido

Muchas gracias jurena el codigo me sirvio a la perfeccion y lo testie con mas datos y todo de maravilla Tu si que sabes......

Mi preguntita seria otra..... Habra una forma mas practica, facil o sencilla de resolver esta consulta, o esta seria la mejor opcion??
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 14:17.