Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/07/2012, 08:26
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con access

Un detalle a tener en cuenta: El HAVING se usa generalmente cuando quieres comparar un dato contra el valor de una función agregada (SUM, MAX, AVG, MIN, etc), pero no para comparar un campo contra una constante, como el numero de mes o año que buscas. En ese caso es preferible hacerlo en el WHERE, que interviene antes en la lógica del plan de consulta.
El HAVING es un filtro final, no inicial, por lo que la escritura que propones es de baja performance.
La idea sería, entonces:
Código SQL:
Ver original
  1. SELECT
  2.     SUM([VENTA]![IMPORTE_TOTAL]) AS [Total facturas emitidas],
  3.     MONTH([VENTA].[FECHA_DESCARGA]) AS Mes,
  4.     YEAR([VENTA].[FECHA_DESCARGA]) AS Año
  5. FROM
  6.     VENTA
  7. WHERE (((MONTH([VENTA].[FECHA_DESCARGA]))=[Escribe número de mes]) AND ((YEAR([VENTA].[FECHA_DESCARGA]))=[Escribe año]))
  8. GROUP BY
  9.     MONTH([VENTA].[FECHA_DESCARGA]), YEAR([VENTA].[FECHA_DESCARGA]);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)