![]() |
Error al agrupar totales por mes
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. |
Según el error, no puedes usar
group by mes sino group by Month(Facturas.Fecha) Saludos |
Resuelto
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. |
| La franja horaria es GMT +2. Ahora son las 18:51:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi