Calculate number of days between 2 dates, then sum and group by month

Jon295087

I'm querying a view that gives me data about multiple hospital patient episodes. It includes two columns that give me the start date of an episode, and an end date.

What I'm attempting to do (bed stay calculations, for anyone NHS) is calculate how many days fall between the 2 dates (easy), but then group the day count by the month it falls in.

e.g. if Startdate = 17th November 2016, and Enddate = 3rd Jan 2017, I'm after an output along the lines of:

Year | Month | No. Bed Days |
-----------------------------
2016 |  11   |     13       |
2016 |  12   |     31       |
2017 |  1    |      3       |

I've got some code that kind of works along the lines I'm after, based on inputting date parameters:

declare @dtFrom date 
declare @dtTo date

select @dtFrom = '2016-11-17'
      ,@dtTo   = '2017-01-03'


select year(dt) [Year], month(dt) [Month],  count(*) 'No. Bed Days'
from (select top(datediff(d, @dtFrom, @dtTo)) dateadd(d,  row_number() over (order by (select null)), @dtFrom) dt
      from sys.columns) q
group by year(dt), month(dt)
order by [Year], [Month]

However, because the data contains hundreds of episodes and I want to calculate and sum the bed days for all of these into the single table, rather than supplying date parameters, I want to point the code to the view Inpatients.vw_IP_Episodes and use the following variables to supply the parameters from the data: Episode_Start_Date Episode_End_Date.

I've tried modifying the code to declare the variable names as the parameters, and tried modifying the code to point to the view (as below), but I'm just getting syntax errors.

Please can anyone advise on how to correctly formulate the syntax?

select year(dt) [Year], month(dt) [Month],  count(*) 'No. Bed Days'
from Inpatients.vw_IP_Episodes
where
(select top(datediff(d, Episode_Start_Date, Episode_End_Date)) dateadd(d,  row_number() over (order by (select null)), Episode_Start_Date) dt
      from sys.columns) q
group by year(dt), month(dt)
order by [Year], [Month]
Jon295087

With thanks to @Kannan_Kandasamy, the solution was obtained by combining a cross apply approach to the original query, as below:

select year(dt) [Year], month(dt) [Month],  count(*) 'No. Bed Days'
from Inpatients.vw_IP_Episodes
cross apply
(
select top(datediff(day, Episode_Start_Date, Episode_End_Date)) dateadd(d,  row_number() over (order by (select null)), Episode_Start_Date) dt
      from sys.columns) q
group by year(dt), month(dt)
order by [Year], [Month]

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

calculate number of days between 2 dates in php

From Dev

Python How to calculate number of days between 2 dates?

From Dev

JS - Calculate number of days between 2 dates considering leap year

From Java

Calculate difference between two dates (number of days)?

From Dev

Calculate number of days between two dates?

From Dev

awk to calculate number of days between two dates:

From Dev

Calculate number of days between two dates with momentsjs

From Dev

Calculate number of days between two dates in r

From Dev

Count number of days between 2 dates in JPA

From Dev

Number of days between dates?

From Dev

And again about calculate the number of days between two dates using JavaScript

From Dev

How can I calculate the number of working days between two dates

From Java

How to calculate number of days between two given dates?

From Dev

Calculate the number of business days between two dates in power pivot

From Dev

How to calculate the number of days between two given dates

From Dev

How to calculate the number of days between two given dates in processing 3?

From Dev

Calculate number of days between two dates (without using modules)

From Dev

How can I calculate the number of working days between two dates

From Dev

Excel: Calculate average number of days between a range of dates

From Dev

And again about calculate the number of days between two dates using JavaScript

From Dev

Qlikview - calculate number days between two dates except sunday

From Dev

How to calculate number of leaves taken in a month between two dates?

From Dev

Calculate days between dates with decimals

From Dev

Calculate Days Between Two Dates

From Dev

calculate number of 'Real' days between two dates when given a number of business days as input

From Dev

find days difference between 2 dates and how many days in each month

From Dev

Year, Month, Days, hours between two dates

From Dev

Total days between two dates by Month

From Dev

Average Number of days between 2 dates in SQL Alchemy with Postgres

Related Related

  1. 1

    calculate number of days between 2 dates in php

  2. 2

    Python How to calculate number of days between 2 dates?

  3. 3

    JS - Calculate number of days between 2 dates considering leap year

  4. 4

    Calculate difference between two dates (number of days)?

  5. 5

    Calculate number of days between two dates?

  6. 6

    awk to calculate number of days between two dates:

  7. 7

    Calculate number of days between two dates with momentsjs

  8. 8

    Calculate number of days between two dates in r

  9. 9

    Count number of days between 2 dates in JPA

  10. 10

    Number of days between dates?

  11. 11

    And again about calculate the number of days between two dates using JavaScript

  12. 12

    How can I calculate the number of working days between two dates

  13. 13

    How to calculate number of days between two given dates?

  14. 14

    Calculate the number of business days between two dates in power pivot

  15. 15

    How to calculate the number of days between two given dates

  16. 16

    How to calculate the number of days between two given dates in processing 3?

  17. 17

    Calculate number of days between two dates (without using modules)

  18. 18

    How can I calculate the number of working days between two dates

  19. 19

    Excel: Calculate average number of days between a range of dates

  20. 20

    And again about calculate the number of days between two dates using JavaScript

  21. 21

    Qlikview - calculate number days between two dates except sunday

  22. 22

    How to calculate number of leaves taken in a month between two dates?

  23. 23

    Calculate days between dates with decimals

  24. 24

    Calculate Days Between Two Dates

  25. 25

    calculate number of 'Real' days between two dates when given a number of business days as input

  26. 26

    find days difference between 2 dates and how many days in each month

  27. 27

    Year, Month, Days, hours between two dates

  28. 28

    Total days between two dates by Month

  29. 29

    Average Number of days between 2 dates in SQL Alchemy with Postgres

HotTag

Archive