Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2015, 06:30
pleyades1180
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 4
Antigüedad: 8 años, 9 meses
Puntos: 0
Fallo de funcion DATEADD

Hola:

Tengo una consulta en SQL server y no se que es lo que falla. Intento sacar la cantidad diferencial entre las ventas de un mes y el anterior. Al principio usaba el comparador de meses con la funcion Month(fecha)-1, pero esto no vale cuando quieres comparar Enero con Diciembre del año anterior, asi que pase a usar DATEADD para sacar el mes y año del mes anterior, pero me da error:
Código SQL:
Ver original
  1. SELECT a.punvenid, YEAR(a.fecha) AS Año, MONTH(a.fecha) AS Mes, COUNT(a.ingbru) AS NumRegs,
  2. SUM(a.ingbru) AS SumIng, Avg(a.ingbru) AS PromIng, SUM([a].[ingbru])-(SELECT SUM(b.ingbru)
  3.  FROM ingdet b WHERE YEAR(b.fecha)=YEAR(DATEADD("m",-1,a.fecha)) AND
  4. MONTH(b.fecha)=MONTH(DATEADD("m",-1,a.fecha)) AND b.punvenid=a.punvenid) AS difant
  5. FROM ingdet AS a
  6. GROUP BY a.punvenid, YEAR(a.fecha), MONTH(a.fecha)
  7. ORDER BY a.punvenid, YEAR(a.fecha) DESC , MONTH(a.fecha) DESC;

Me da el tipico error: "Ha intentado ejecutar una consulta que no incluye la expresion especificada 'fecha' como parte de una funcion de agregado"

Si podeis ayudarme os lo agradezco. ESOY