Hola estimada Gente del foro tengo la siguiente consulta ya que estoy realizando una consulta SQL en una base de Datos SQL Server 2008 rs2 necesito generar una HAVING. ya que tengo que preguntar por número de mes de un campo de tipo Date (Fecha_Apertura) pero cuando ejecuto el Analizador de Consulta me aparece el siguiente problema
SELECT Nombre_Proyecto, Cantidad, Id_Tipo_Hallazgo, Nombre_Tipo_Hallazgo, ProyectoActivo, ID_Proyecto, Nombre_Tipo_Falla, Id_Filial, Fecha_Apertura
FROM dbo.vis_UiInf_Ranking_Hallazgos_TipoFalla
GROUP BY Nombre_Proyecto, Cantidad, Id_Tipo_Hallazgo, Nombre_Tipo_Hallazgo, ID_Proyecto, Nombre_Tipo_Falla, Id_Filial, Fecha_Apertura, MONTH(Fecha_Apertura)
HAVING (MONTH(Fecha_Apertura) = 4) AND (Id_Filial = 9)
La columna 'dbo.vis_UiInf_Ranking_Hallazgos_TipoFalla.ProyectoActivo' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.
Saludos
Estas tratando de usar el having como en otro SQL, (me parece que mysql).
En SQL lo que estas tratando de hacer no necesita HAVING, solo un WHERE.
No tenes ninguna funcion de agregado en el SELECT, para que poner el GROUP??
*funcion de agregado seria SUM / COUNT / AVG / MAX / MIN ....
la idea del having con el group seria algo asi como el WHERE del GROUP, tambien se puede usar sin el GROUP, pero al poner el GROUP, TODOS los campos que no sean funcion de agregado deben estar en el group, en tu caso serian todos los del select, por eso carece de logica.
proba asi:
SELECT Nombre_Proyecto, Cantidad, Id_Tipo_Hallazgo, Nombre_Tipo_Hallazgo, ProyectoActivo, ID_Proyecto, Nombre_Tipo_Falla, Id_Filial, Fecha_Apertura
FROM dbo.vis_UiInf_Ranking_Hallazgos_TipoFalla
WHERE MONTH(Fecha_Apertura) = 4 AND Id_Filial = 9