Sacar promedios por meses

20/10/2009 - 18:08 por RP | Informe spam
Hola que tal, bueno me enfrento en un pequeño problema que nose como
resolverlo, espero que me puedan ayudar,
Tengo una tabla de Bienes (Item, Codigo, Descripcion, Unidad); una tabla
Unidad(Codigo, Descripcion, Abrev); una tabla Compra(Codigo, FechaCompra); y
una tabla DetalleAdq(Codigo, CodCompra, CodigoBien, PrecioUnit)
Lo que deseo hacer es un Query que me permita sacar el promedio del costode
cada bien en los ultimos 3 meses, algo que se vea asi como esto:

CodigoBien Bien Unidad Enero Febrero Marzo
1234 Papel UND 25.36 24.00 38.95
4321 Cafe GR 15.00 0 10.00
... ... ... ... ...
...

Tengamos en cuenta que para el caso de cafe en febrero me puede marcar 0, ya
que puede no haber adquisiciones en ese mes,

El query que estoy probando, me sale sólo con un mes que seria este:

Select
b.Codigo, b.Descripcion, u.Abrev, avg(da.CostoUnit)
From
Bien b, Unidad u, DetalleAdq da, Compra c
Where
b.Unidad=u.Codigo And da.CodBien=b.Codigo
And da.CodOC=c.Codigo
And Month(c.FechReg) And year(c.FechReg) 09
Group By
b.Codigo, b.Descripcion, u.Abrev

¿Como haria para que ese query me funcione para los 3 meses, Enero Febrero y
Marzo por Ejemplo, tal como quiero que se vea??, ¿Hay forma de hacerlo??,
Gracias de antemando
 

Leer las respuestas

#1 Ruben Garrigos
20/10/2009 - 18:39 | Informe spam
Hola RP,

Si el query que tienes te funciona bien, simplemente agrupa por meses. Sería
algo así:

Select
Month(c.FechReg) mes, b.Codigo, b.Descripcion, u.Abrev, avg(da.CostoUnit)
From
Bien b, Unidad u, DetalleAdq da, Compra c
Where
b.Unidad=u.Codigo And da.CodBien=b.Codigo
And da.CodOC=c.Codigo
And year(c.FechReg) 09
Group By
Month(c.FechReg),b.Codigo, b.Descripcion, u.Abrev
having Month(c.FechReg) in (1,2,3)


Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola que tal, bueno me enfrento en un pequeño problema que nose como
resolverlo, espero que me puedan ayudar,
Tengo una tabla de Bienes (Item, Codigo, Descripcion, Unidad); una
tabla
Unidad(Codigo, Descripcion, Abrev); una tabla Compra(Codigo,
FechaCompra); y
una tabla DetalleAdq(Codigo, CodCompra, CodigoBien, PrecioUnit)
Lo que deseo hacer es un Query que me permita sacar el promedio del
costode
cada bien en los ultimos 3 meses, algo que se vea asi como esto:
CodigoBien Bien Unidad Enero Febrero Marzo
1234 Papel UND 25.36 24.00 38.95
4321 Cafe GR 15.00 0 10.00
... ... ... ... ...
...
Tengamos en cuenta que para el caso de cafe en febrero me puede marcar
0, ya que puede no haber adquisiciones en ese mes,

El query que estoy probando, me sale sólo con un mes que seria este:

Select
b.Codigo, b.Descripcion, u.Abrev, avg(da.CostoUnit)
From
Bien b, Unidad u, DetalleAdq da, Compra c
Where
b.Unidad=u.Codigo And da.CodBien=b.Codigo
And da.CodOC=c.Codigo
And Month(c.FechReg) And year(c.FechReg) 09
Group By
b.Codigo, b.Descripcion, u.Abrev
¿Como haria para que ese query me funcione para los 3 meses, Enero
Febrero y Marzo por Ejemplo, tal como quiero que se vea??, ¿Hay forma
de hacerlo??, Gracias de antemando

Preguntas similares