• Viernes 8 de Noviembre de 2024, 23:12

Autor Tema:  Consulta por mes  (Leído 9011 veces)

JaviMarciano

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Consulta por mes
« en: Miércoles 28 de Abril de 2010, 03:39 »
0
Hola para hacer una consulta por meses hago lo siguiente:

Código: SQL
  1. SELECT datepart(mm,Fecha)AS Mes, SUM(Importe)AS Total
  2. FROM [Toot].[dbo].[T_Gastos]
  3.  
  4. GROUP BY datepart(mm,Fecha)
  5.  

Mes........Total
1...........500
2...........550
3...........700
.
.
.

El problema es que si introd. un registro de otro año lo suma con los del mismo mes del otro año
como puedo discriminar por año

La Tabla es la siguiente

T_Gastos:
Importe
Destino
Fecha

Sagma

  • Miembro MUY activo
  • ***
  • Mensajes: 390
  • Nacionalidad: bo
    • Ver Perfil
Re: Consulta por mes
« Respuesta #1 en: Miércoles 28 de Abril de 2010, 22:29 »
0
debes usar la condicion WHERE.

SELECT datepart(mm,Fecha)AS Mes, sum(Importe)AS  Total
FROM [Toot].[dbo].[T_Gastos]
WHERE fecha between "01/01/2008" and "31/12/2008"  
GROUP BY datepart(mm,Fecha)

pero por ahi he escuchado que el BETWEEN es un poco no se en SQL, segun dicen, que me corrijan si estoy mal, hay que usar:

WHERE fecha >= "01/01/2008"
AND fecha <= "31/12/2008"

suerte.  :comp:
Sagma

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Consulta por mes
« Respuesta #2 en: Jueves 29 de Abril de 2010, 21:58 »
0
Citar
pero por ahi he escuchado que el BETWEEN es un poco no se en SQL, segun dicen, que me corrijan si estoy mal, hay que usar:

Puedes hacer el uso del BETWEEN sin ningun problema en SQL  Server  ;)

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



JaviMarciano

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Consulta por mes
« Respuesta #3 en: Jueves 29 de Abril de 2010, 22:28 »
0
Esa es la manera correcta de hacerlo?
no hay alguna forma de hacerlo ingresando solo el año?

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Consulta por mes
« Respuesta #4 en: Jueves 29 de Abril de 2010, 23:08 »
0
A ver si entendi ...

Si agruparas tambien por año obtendrias el resultado deseado creo ...

Código: SQL
  1. SELECT datepart(mm,Fecha)AS Mes,datepart(YYYY,Fecha) 'Anio', SUM(Importe)AS Total
  2. FROM T_Gastos
  3. GROUP BY datepart(mm,Fecha),datepart(YYYY,Fecha)
  4.  

Si quieres un año en especifico

Código: SQL
  1. SELECT datepart(mm,Fecha)AS Mes,datepart(YYYY,Fecha) 'Anio', SUM(Importe)AS Total
  2. FROM T_Gastos
  3. WHERE datepart(YYYY,Fecha) = 2007
  4. GROUP BY datepart(mm,Fecha),datepart(YYYY,Fecha)
  5.  

Ordenando

Código: SQL
  1. SELECT datepart(mm,Fecha)AS Mes,datepart(YYYY,Fecha) 'Anio', SUM(Importe)AS Total
  2. FROM T_Gastos
  3. WHERE datepart(YYYY,Fecha) = 2007
  4. GROUP BY datepart(mm,Fecha),datepart(YYYY,Fecha)
  5. ORDER BY datepart(mm,Fecha),datepart(YYYY,Fecha)
  6.  
  7.  


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

JaviMarciano

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Consulta por mes
« Respuesta #5 en: Viernes 30 de Abril de 2010, 05:27 »
0
buenisimo muchas gracias
es exact lo que quería