Ver Mensaje Individual
  #34 (permalink)  
Antiguo 14/06/2009, 16:58
Dalobla
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Sentencia SQL para lograr el Ranking de los 5 productos mas vendidos

Cita:
Iniciado por gasafonso Ver Mensaje

SELECT TOP 10 Sum(Val(tbDetalleFactura.Cantidad)) AS total, Max(tbArticulos.Descripcion) AS des, Max(tbDetalleFactura.fecha) AS MáxDefecha, Sum(tbDetalleFactura.Subtotal) AS sub, tbDetalleFactura.CodigoProd, Max(tbArticulos.Codigo) AS cod
FROM tbDetalleFactura INNER JOIN tbArticulos ON tbDetalleFactura.CodigoProd = tbArticulos.Codigo
WHERE (((tbDetalleFactura.fecha) Between [?] And [?]))
GROUP BY tbDetalleFactura.CodigoProd, tbDetalleFactura.fecha

Hola gasafonso:
He bajado la base de datos y tengo dos observaciones:
1) INNER JOIN hasta donde tengo entendido se usa con campos clave
2) Es de imaginarnos que en tbDetalleFactura deberian estar todos los codigos de productos existentes en tbArticulos y al revisar los campos el codigo 9 que existe en tbDetalleFactura no se encuentra en tbArticulos, revisa esa parte.

He modificado tu consulta en Access y ha quedado asi, luego lo adaptas para que lo puedas usar con tu programa en la parte de las fechas

Código:
SELECT TOP 10 Sum(Val(tbDetalleFactura.Cantidad)) AS total, Max(tbArticulos.Descripcion) AS des, Max(tbDetalleFactura.fecha) AS MáxDefecha, Sum(tbDetalleFactura.Subtotal) AS sub, tbDetalleFactura.CodigoProd, Max(tbArticulos.Codigo) AS cod
FROM tbDetalleFactura, tbArticulos
WHERE (((tbDetalleFactura.CodigoProd)=[tbArticulos].[Codigo]) AND ((tbDetalleFactura.fecha) Between #8/25/2008# And #11/25/2008#))
GROUP BY tbDetalleFactura.CodigoProd, tbDetalleFactura.fecha
ORDER BY tbDetalleFactura.fecha DESC;

Espero te sirva, ya nos contaras como te fue, saludos


PD, esta es la primera vez que respondo en este foro al cual le estoy muy agradecido por que me ha ayudado en muchos casos.