2010-11-17 17 views
6

¿Puedo tener una declaración de caso en una cláusula HAVING en SQL Server 2005?declaración de caso en tener cláusula en sql

A continuación se muestra mi declaración HAVING. Me está dando un error de sintaxis.

@CLIENTPK_NEW IS NULL OR 
    (
     CLIENT.OH_PK = @CLIENTPK_NEW and 
     CASE WHEN @RelatedOrgs <> '11' then CLIENT.OH_PK= @CLIENTPK_NEW 
     ELSE CLIENT.OH_PK in (
      SELECT dbo.OrgHeader.OH_PK FROM dbo.OrgHeader WITH (NOLOCK) INNER JOIN 
      dbo.OrgRelatedParty WITH (NOLOCK) ON dbo.OrgHeader.OH_PK = dbo.OrgRelatedParty.PR_OH_Parent INNER JOIN 
      dbo.OrgHeader AS OrgHeader_1 WITH (NOLOCK) ON dbo.OrgRelatedParty.PR_OH_RelatedParty = OrgHeader_1.OH_PK 
      where OrgHeader_1.OH_PK = @CLIENTPK_NEW 
     ) 
     END 
    ) 
} 
AND (@CGNEEPK IS NULL OR CGNEE.OH_PK = @CGNEEPK) AND  
part.OP_RH_NKCommodityCode = @type 

Gracias,

Amit

+1

porque usted escribió la mitad una pregunta. Respondí la pregunta que originalmente me hiciste. –

+0

@ Mitch-- bien mi error. gracias por su respuesta. He actualizado la pregunta también. Por favor avise – Amit

Respuesta

17

Ejemplo (de here):

USE AdventureWorks2008R2; 
GO 
SELECT JobTitle, MAX(ph1.Rate)AS MaximumRate 
FROM HumanResources.Employee AS e 
JOIN HumanResources.EmployeePayHistory AS ph1 
    ON e.BusinessEntityID = ph1.BusinessEntityID 
GROUP BY JobTitle 
HAVING (MAX(CASE WHEN Gender = 'M' 
     THEN ph1.Rate 
     ELSE NULL END) > 40.00 
    OR MAX(CASE WHEN Gender = 'F' 
     THEN ph1.Rate 
     ELSE NULL END) > 42.00) 
ORDER BY MaximumRate DESC; 
+0

Gracias por eso. He agregado el fragmento de código que me está dando un error de sintaxis y no puedo entender qué está mal con él. por favor avise – Amit

-1

otro ejemplo de here..

SELECT EmployeeName ,Country,CompanyPlant,Gender, Total=MAX(PayScale) 
FROM Employee 
GROUP BY EmployeeName ,Country,CompanyPlant,Gender 
HAVING (MAX(CASE WHEN Gender = 'Male' 
THEN PayScale 
ELSE NULL END) > 150.00 
OR MAX(CASE WHEN Gender = 'Female' 
THEN PayScale 
ELSE NULL END) > 180.00) 
Cuestiones relacionadas