May 8, 2012 at 3:55 am
How is it possible to use WHEN EXISTS inside a CASE Statement?
Currently I am using SELECT TOP 1 as per code below but the query is taking some time to run and wonder how it was possible to use the WHEN EXISTS function.
CASE
WHEN
(
SELECT TOP 1 ApptDate
FROM AllApptStatus
WHERE Apptdate + ApptTime >= GETDATE()
AND aReferralID = cr.id
AND ApptStatus <> -568
AND ApptType IS NOT NULL
ORDER BY ApptDate
) IS NOT NULL AND
(
SELECT TOP 1 ApptDate
FROM AllApptstatus
WHERE aReferralID = cr.id
AND ApptStatus IN (-1407, -1408)
ORDER BY ApptDate DESC
) IS NULL THEN 'Future Appt Booked, No Previous'
WHEN
(
SELECT TOP 1 ApptDate
FROM AllApptStatus
WHERE aReferralID = cr.id
AND ApptDate + ApptTime >= GETDATE()
AND ApptStatus <> -568
AND ApptType IS NOT NULL
ORDER BY ApptDate
) IS NOT NULL THEN 'Future Appt Booked, Previous Attended'
WHEN cr.id IN (SELECT iReferralID FROM Investigations) THEN 'Waiting List'
WHEN
(
SELECT TOP 1 ApptDate
FROM AllApptStatus
WHERE aReferralID = cr.id
AND ApptStatus IN (-1407, -1408)
ORDER BY ApptDate DESC
) IS NOT NULL THEN 'Previous Attended, No Future'
ELSE 'Nothing Attended, Nothing Booked'
END ReportStatus
How is it possible to do?
Thanks
May 8, 2012 at 4:00 am
May 8, 2012 at 5:01 am
Yes, just do:
SELECT CASE WHEN EXISTS(subquery) THEN...
There are some situations you can't use it (e.g. in a group by clause IIRC), but SQL should tell you quite clearly in that situation.
Thanks
May 8, 2012 at 6:16 am
Gazareth (5/8/2012)
Yes, just do:SELECT CASE WHEN EXISTS(subquery) THEN...
There are some situations you can't use it (e.g. in a group by clause IIRC), but SQL should tell you quite clearly in that situation.
Thanks
Thanks I'll give that a go
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy