PDA

Ver la Versión Completa : Error al agrupar totales por mes


Angel Fernández
11-06-2007, 15:03:49
Saludos al foro.

Tengo una duda que no he conseguido resolver buscando por el foro.

Tengo una BD en Access a la que accedo desde D7 con componentes ADO. La BD tiene, entre otras, las tablas Facturas (con los campos: Numfactura, Fecha, Idcliente, Situacion, Total, etc...) y Clientes
(idcliente, nombre, etc...)

Quiero hacer una consulta que me muestre el total facturado agrupado por mes, algo así:

Mes Total
------------
01 256.36
02 2569.45
etc

Para ello utilizo un Adoquery con la siguiente sql:

select MONTH(Facturas.Fecha) as mes,Facturas.idcliente, Clientes.idcliente, Clientes.Nombre, Facturas.Total, Facturas.Tipo, Facturas.Situacion, Sum(Facturas.Total) as Sumatotal
from Facturas,Clientes
where Clientes.idcliente=Facturas.idcliente
group by mes


Pero no funciona. Me da el siguiente error:
'Ha intentado ejecutar una consulta que no incluye la expresión especificada 'MONTH(Facturas.Fecha)' como parte de una función de agregado'

En cambio, con esta SQL me funciona:

select MONTH(Facturas.Fecha) as mes,Facturas.idcliente, Clientes.idcliente, Clientes.Nombre, Facturas.Total, Facturas.Tipo, Facturas.Situacion
from Facturas,Clientes
where Clientes.idcliente=Facturas.idcliente

Nótese que he quitado el sum(facturas.total) as sumatotal y el group by mes.
Si sólo quito el group by mes y dejo el sum(facturas.total) as sumatotal también me da el mismo error.

Evidentemente, con el sql que funciona no consigo lo que quiero.

¿Dónde está el fallo?

Gracias de antemano.

Lepe
11-06-2007, 15:45:34
Según el error, no puedes usar

group by mes

sino

group by Month(Facturas.Fecha)

Saludos

Angel Fernández
11-06-2007, 16:04:53
Gracias Lepe por tu pronta respuesta. Con lo que has dicho y trasteando un poco he solucionado el problema.

El sql que funciona es este:

select MONTH(Facturas.Fecha) as mes, Sum(Facturas.Total) as Sumatotal
from Facturas
where Facturas.Tipo = 'Factura'
group by MONTH(Facturas.Fecha)

No se pueden poner mas campos en el select (Facturas.Tipo, Facturas.Situacion etc.) porque si no, se repite el error que comentaba en mi primer comentario.

Te lo agradezco, Lepe. Un saludo.