I am using CASE statement to create column Quoted. So its gonna display value 1 or 0.
But then column DisplayStatus have to be created based on the condition of previous column Quoted.
Seems like I should use nested CASE statement in this situation. But I cannot come up with right query.
SELECT
case when isnull(grouptt.controlno,0) <>0 AND isnull(vwR.Premium,0) > 0 then
cast( 1 as bit)
else cast( 0 as bit)
end as Quoted,
CASE
WHEN a.DisplayStatus = 'LOST' AND quoted=1 THEN 'Quoted_Lost'
WHEN a.DisplayStatus = 'DECLINED' AND quoted=1 THEN 'Quoted_NotTakenUp'
WHEN a.DisplayStatus = 'NOT TAKEN UP' AND quoted=1 THEN 'Quoted_Lost'
ELSE
a.DisplayStatus
END
DisplayStatus
FROM MyTable
Use a nested CASE expression
SELECT
CASE
WHEN ISNULL(grouptt.controlno, 0) <> 0 AND ISNULL(vwR.Premium, 0) > 0 THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT)
END AS Quoted,
CASE
WHEN ISNULL(grouptt.controlno, 0) <> 0 AND ISNULL(vwR.Premium, 0) > 0 THEN
CASE
WHEN a.DisplayStatus = 'LOST' THEN 'Quoted_Lost'
WHEN a.DisplayStatus = 'DECLINED' THEN 'Quoted_NotTakenUp'
WHEN a.DisplayStatus = 'NOT TAKEN UP' THEN 'Quoted_Lost'
ELSE a.DisplayStatus
END
ELSE a.DisplayStatus
END AS DisplayStatus
FROM MyTable
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With