Friday, October 4, 2013

Case Statement in IF-Statement

Are you looking for the below query. You can not use IF within SELECT statement.



SELECT WFO.OrderID, WFO.OrderNumber,
CASE WHEN (WFO.OrderNumber) > 0 THEN
CASE
WHEN EXISTS (SELECT * FROM WF_Job AS WFJ WHERE WFJ.OrderID = WFO.OrderID AND (WFJ.JobsDeliStatusFlag <> '1' OR WFJ.JobsDeliStatusFlag IS NULL OR WFJ.JobsDeliStatusFlag=' ' ))
AND WFO.OrderID NOT IN (SELECT OrderID FROM DeliveryAccess)
THEN '2'
WHEN EXISTS (SELECT * FROM WF_Job AS WFJ WHERE WFJ.OrderID = WFO.OrderID AND WFJ.JobsDeliStatusFlag = '1' AND ISNULL(WFJ.JobsInvStatusFlag, '0') <> '1')
AND WFO.OrderID IN (SELECT OrderID FROM DeliveryAccess)
THEN '3'
WHEN EXISTS (SELECT * FROM WF_Job AS WFJ WHERE WFJ.OrderID = WFO.OrderID AND WFJ.JobsDeliStatusFlag = '1' AND WFJ.JobsInvStatusFlag = '1')
AND WFO.OrderID IN (SELECT OrderID FROM DeliveryAccess)
THEN '4'
END
ELSE 1
END AS OrderStatus
FROM dbo.WF_Order AS WFO





Regards, RSingh



No comments:

Post a Comment