Navegación
-
Servicios
-
Noticias
- Google, Facebook y Twitter planean una original protesta
- Adiós Dennis Ritchie
- Muere Steve Jobs
- Cierra Bizarre Creations
- No habrá más Ubuntu Netbook Edition
- Cómo es el Internet Explorer 9 que será lanzado el lunes
- Impulsan una baja del costo de Internet
- Software argentino: ¿"niña bonita" de la economía local?
- Sex.com se vendió en u$s 13 millones
- Google puso fin al misterio de Batman
- Todas las noticias
-
Artículos
-
Descargas
-
Últimos 15 usuarios
-
Usuarios Top 15
-
Sitios recomendados
Web social
Tabla de contenidos
La tabla de contenidos pertenece al artículo completo y no al contenido parcial de cada página del mismo si fuese el caso.
Resúmen
Suma acumulativa con una única consulta sql. Ejemplo completo.
Sobre el autor
Gastón tiene 30 años, vive en Argentina / Santa Fe / Santa Fe y su ocupación es Desarrollador de aplicaciones web.
Forma parte del club desde 19/10/2009 a las 20:52 habiendo estado en linea ayer a las 00:18 por última vez.
Ha publicado 47 artículos en clubdesarrolladores con un promedio de valoración de 7.87 puntos. Puedes visitar su sitio web en http://www.devstudios.com.ar
Estadísticas
- Leido 5344 veces
- Valorado 9.00 puntos
Situación
Un vendedor tiene que presentar un informe de acuerdo a las ventas realizadas de un determinado producto desde principio del año, con detalle mes a mes de manera acumulativa, es decir sumando las cantidades de cada mes.
Los datos y el resultado deseado
Se tiene como dato las ventas realizadas del producto para cada mes y se desea presentar un informe donde se vea el crecimiento de las ventas a lo largo del año.
Este es un ejemplo de datos del vendedor:
En enero vendió 10 unidades del producto
En febrero vendió 6 unidades del producto
En marzo vendió 14 unidades del productoEl informe debe presentar la información de esta manera:
Para enero se vendieron 10 unidades del producto
Para febrero se vendieron 16 (10+6) unidades del producto
Para marzo se vendieron 30 (10+6+14) unidades del productoLa base de datos
Tabla Ventas
CREATE TABLE ventas
(
id int not null auto_increment primary key,
mes varchar(20) not null,
cantidad int not null,
unique (mes)
);Las consultas
Producto cartesiano
Seleccionaremos primero la cantidad de productos vendidos de cada mes
select mes, cantidad from ventas where id < ?Debemos comparar cada tupla de ventas el conjunto de todas las tuplas de la misma.
select v1.mes, v1.cantidad, v2.mes, v2.cantidad from ventas v1, ventas v2Consideremos que la tabla ventas contiene los siguientes datos:
id mes cantidad
-----------------------------------------------------
1 enero 10
2 febrero 6
3 marzo 14 Aplicando el producto cartesiano obtenemos:
mes cantidad mes cantidad
------------------------------------------------------------------
enero 10 enero 10
enero 10 febrero 6
enero 10 marzo 14
febrero 6 enero 10
febrero 6 febrero 6
febrero 6 marzo 14
marzo 14 enero 10
marzo 14 febrero 6
marzo 14 marzo 14 Ahora debemos restringir los resultad para cada mes a los meses anteriores:
select v1.mes, v1.cantidad, v2.mes, v2.cantidad from ventas v1, ventas v2 where v2.id<=v1.idY obtenemos
mes cantidad mes cantidad
------------------------------------------------------------------
enero 10 enero 10
febrero 6 enero 10
febrero 6 febrero 6
marzo 14 enero 10
marzo 14 febrero 6
marzo 14 marzo 14 Finalmente nos hace falta sumar estos datos traidos por v2
select v1.mes, sum(v2.cantidad) from ventas v1, ventas v2 where v2.id<=v1.id group by v1.mes Obteniendo finalmente lo deseado:
mes cantidad
------------------------------------------------------------------
enero 10
febrero 16
marzo 30Como puede verse la columna id nos sirve para manejar el orden de los meses.
Si tiene alguna pregunta sobre éste artículo por favor deje un comentario y será respondido.
Descargas
No existen descargas asociadas
Comentarios
Sus comentarios son importantes.
Listado de comentarios
No hay comentarios para listar, si desea puede crear el primer comentario para este artículo.
Agregar un comentario
Debe estar identificado para agregar un comentario
delicio.us
Google Bookmark
Technorati
Twitthis
Meneame
Yahoo My Web
Fresqui
Enchilame