Calculating Length of Stay with lots of NULL values involved

Becky Edwards
Becky Edwards used Ask the Experts™
I need to bring back a calculation for Length of stay for a patient IF they have a discharge date and an admit date.
Otherwise I need it to show a blank or a 0.  Is that possible?

Lots of pre-requisites in this case statement:
If no discharge date then 0 or blank
If no IP admit date use Regular Admit Date
If no admit dates at all, then 0 or blank
If no admit dates OR discharges date, bring back 0 or blank

If Admit Date minus discharge date is less than 24 hours then 1
If more than 24 hours then subtract "applicable" admit date from discharge date and provide that number.

The latest error message for my current query is:

Msg 257, Level 16, State 3, Line 38
Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.

Attached are two snippets,
One that doesn't work and brings back the error message above.
one that works but brings back NULL values.LengthOfStay_Querylanguage.docx
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
You may try this code:
CASE WHEN coalesce(har3.IP_ADMIT_DATE_TIME,har.adm_date_time) IS NULL OR har.DISCH_DATE_TIME IS NULL
     THEN 0
	 WHEN datediff(d, coalesce(har3.IP_ADMIT_DATE_TIME,har.adm_date_time),har.DISCH_DATE_TIME) < 1 
	 THEN 1
	 ELSE datediff(d, coalesce(har3.IP_ADMIT_DATE_TIME,har.adm_date_time),har.DISCH_DATE_TIME)
END  AS LengthofStay

Open in new window

Becky EdwardsEpic Clarity Developer


Thank you for your prompt response!  I am having it validated now, but it looks like it is working perfectly.  Thank you!
Becky EdwardsEpic Clarity Developer


Thank you!  That code worked perfectly and validated.  You really saved the day for me on this one.
You are welcome!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial