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.
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.