Hola si mal no entiendo es esto lo que estas buscando.
Código SQL
[-]CREATE PROCEDURE dbo.Factura1
@SHaving CHAR(256)
AS
begin
declare @Select varchar(max)
set @Select = '
SELECT dbo.OT.OT, SUM(dbo.OT.ImpCUC) AS ImpCUC, SUM(dbo.OT.ImpMN) AS ImpMN, dbo.OT.IdCentral, dbo.Entidades.Descripcion, dbo.Motores.Marca,
dbo.Motores.Modelo, dbo.Horas.Horas, dbo.Centrales.Nombre, dbo.OTObservaciones.Observaciones, dbo.OT.Bateria, dbo.OT.Motor
FROM dbo.OT LEFT OUTER JOIN
dbo.Entidades ON dbo.OT.IdEntidad = dbo.Entidades.IdEntidad LEFT OUTER JOIN
dbo.Motores ON dbo.OT.IdMotor = dbo.Motores.IdMotor LEFT OUTER JOIN
dbo.Horas ON dbo.OT.IdHoras = dbo.Horas.IdHoras LEFT OUTER JOIN
dbo.Centrales ON dbo.OT.IdCentral = dbo.Centrales.IdCentral LEFT OUTER JOIN
dbo.OTObservaciones ON dbo.OT.OT = dbo.OTObservaciones.OT
GROUP BY dbo.OT.OT, dbo.OT.IdCentral, dbo.Entidades.Descripcion, dbo.Motores.Marca, dbo.Motores.Modelo, dbo.Horas.Horas, dbo.Centrales.Nombre,
dbo.OTObservaciones.Observaciones, dbo.OT.Bateria, dbo.OT.Motor
'
exec (@select + ' Having ' + @SHaving )
end
GO
en la variable @SHaving mandas lo que quieres pero que coincida con la query.
Saludos.