SQL - Agrupar por meses y rangos

 
Vista:
sin imagen de perfil

Agrupar por meses y rangos

Publicado por EkkoRules (1 intervención) el 03/05/2018 09:40:02
Buenas, este es mi primer post a ver si me podeis ayudar.

Quiero crear unas tablas con la herramienta Chart de Visual Studio y para ello debo adjuntarle una sentencia SQL. Lo que busco es agrupar los costes que hay por meses seleccionando una o todas las secciones y sacarlos en la gráfica.

He logrado sacar esto:

SELECT datepart(month, fecha) as Mes, sum(total) as costeTotales FROM costes GROUP BY datepart(month, fecha) ORDER BY Mes asc

que me saca:
Mes | CostesTotales
1 500€
3 300€
5 660€

Mi problema es que quiero que en lugar del número de més me salga el nombre y poder filtrar por secciones, ya que poniendo al final un where seccion = 'nombreseccion' me da error

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Agrupar por meses y rangos

Publicado por leonardo_josue (1173 intervenciones) el 03/05/2018 16:22:53
Hola EkkoRules:

1
Mi problema es que quiero que en lugar del número de més me salga el nombre y poder filtrar por secciones,

Para la parte del Nombre del mes, puedes hacerlo de varias formas, checa esta liga para que veas algunos ejemplos:

https://www.lawebdelprogramador.com/foros/SQL-Server/968236-Obtener-Nombre-mes-de-esta-forma.html

1
poniendo al final un where seccion = 'nombreseccion' me da error

No nos dices qué error es el que estas obteniendo y así es casi imposible poder adivinar, sin embargo que comento que la sección where no va al final de la consulta, sino que tiene que ir ente el FROM y el GROUP BY:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
  campo, ...
FROM
  tabla
INNER JOIN tabla2...
  ...
WHERE
  condicion
GROUP BY
  ...
HAVING
  ...
ORDER BY
  ...

Postea el error que te está arrojando el DBMS y la sentencia que estás tratando de ejecutar, así será más factible que podamos encontrar el problema.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar