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
SELECT a.punvenid, YEAR(a.fecha) AS Año, MONTH(a.fecha) AS Mes, COUNT(a.ingbru) AS NumRegs, SUM(a.ingbru) AS SumIng, Avg(a.ingbru) AS PromIng, SUM([a].[ingbru])-(SELECT SUM(b.ingbru) FROM ingdet b WHERE YEAR(b.fecha)=YEAR(DATEADD("m",-1,a.fecha)) AND MONTH(b.fecha)=MONTH(DATEADD("m",-1,a.fecha)) AND b.punvenid=a.punvenid) AS difant FROM ingdet AS a GROUP BY a.punvenid, YEAR(a.fecha), MONTH(a.fecha) 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