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 Java

How to calculate number of days between two given dates?

From Java

Calculate difference between two dates (number of days)?

From Dev

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

From Dev

Calculate days between dates with decimals

From Dev

Year, Month, Days, hours between two dates

From Dev

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

From Dev

Python How to calculate number of days between 2 dates?

From Dev

Count number of days between 2 dates in JPA

From Dev

awk to calculate number of days between two dates:

From Dev

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

From Dev

Calculate number of days between two dates?

From Dev

Calculate number of days between two dates in r

From Dev

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

From Dev

Calculate Days Between Two Dates

From Dev

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

From Dev

Calculate number of days between two dates with momentsjs

From Dev

How to calculate the number of days between two given dates

From Dev

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

From Dev

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

From Dev

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

From Dev

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

From Dev

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

From Dev

Number of days between dates?

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

Total days between two dates by Month

From Dev

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

From Dev

calculate number of days between 2 dates in php

From Dev

Qlikview - calculate number days between two dates except sunday

Related Related

  1. 1

    How to calculate number of days between two given dates?

  2. 2

    Calculate difference between two dates (number of days)?

  3. 3

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

  4. 4

    Calculate days between dates with decimals

  5. 5

    Year, Month, Days, hours between two dates

  6. 6

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

  7. 7

    Python How to calculate number of days between 2 dates?

  8. 8

    Count number of days between 2 dates in JPA

  9. 9

    awk to calculate number of days between two dates:

  10. 10

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

  11. 11

    Calculate number of days between two dates?

  12. 12

    Calculate number of days between two dates in r

  13. 13

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

  14. 14

    Calculate Days Between Two Dates

  15. 15

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

  16. 16

    Calculate number of days between two dates with momentsjs

  17. 17

    How to calculate the number of days between two given dates

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

    Number of days between dates?

  24. 24

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

  25. 25

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

  26. 26

    Total days between two dates by Month

  27. 27

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

  28. 28

    calculate number of days between 2 dates in php

  29. 29

    Qlikview - calculate number days between two dates except sunday

HotTag

Archive