我正在使用sql2008r2
,我需要一份床位入住报告。为此,我刚刚创建了一个视图和这些字段:
registrationid,name,admitdate,dischargedate,accomodationdate,branchid
。
我需要结果如分支占用如下:
Date,openingbalance,totaladmission,totaldischarge,Closingbalance
。
此处开仓余额意味着,例如,如果我在今天的入住率上报告,那么openbalance是昨天的收盘价。
另外closing balance means Opening +totaladmission-totaldischarge
。
我得到totaladmission
和totaldischarge
。
如何在同一行中获得期初余额?
PatientCode PatientName AdmissionDate DischargeDate Roomlogdate RoomName HospitalBranchID RoomTypeMasterName IsDischarged RegistrationID
N294 AAD 06-04-2015 24-04-2015 24-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 23-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 22-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 21-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 20-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 19-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 18-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 17-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 16-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 15-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 14-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 13-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 12-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 11-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 10-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 09-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 08-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 07-04-2015 Own-11 49 Own 1 157480
N294 AAD 06-04-2015 24-04-2015 06-04-2015 Own-11 49 Own 1 157480
N294 AAD 31-03-2014 16-04-2014 16-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 15-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 14-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 13-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 12-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 11-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 10-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 09-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 08-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 07-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 06-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 05-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 04-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 03-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 02-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 01-04-2014 Own-1 49 Own 1 88975
N294 AAD 31-03-2014 16-04-2014 31-03-2014 Own-1 49 Own 1 88975
N294 AAD 25-03-2013 10-04-2013 10-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 09-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 08-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 07-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 06-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 05-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 04-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 03-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 02-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 01-04-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 31-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 30-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 29-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 28-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 27-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 26-03-2013 Own-4 49 Own 1 37204
N294 AAD 25-03-2013 10-04-2013 25-03-2013 Own-4 49 Own 1 37204
1303-94 bb 14-03-2013 25-03-2013 25-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 24-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 23-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 22-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 21-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 20-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 19-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 18-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 17-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 16-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 15-03-2013 306-2 49 Ward 1 36581
1303-94 bb 14-03-2013 25-03-2013 14-03-2013 306-2 49 Ward 1 36581
1503-863 ag 31-03-2015 19-04-2015 19-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 18-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 17-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 16-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 15-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 14-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 13-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 12-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 11-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 10-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 09-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 08-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 07-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 06-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 05-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 04-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 03-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 02-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 01-04-2015 PH-1A-3 49 Outside Rooms 1 156582
1503-863 ag 31-03-2015 19-04-2015 31-03-2015 PH-1A-3 49 Outside Rooms 1 156582
1105-637 abd 26-12-2012 09-01-2013 09-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 08-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 07-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 06-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 05-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 04-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 03-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 02-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 01-01-2013 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 31-12-2012 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 30-12-2012 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 29-12-2012 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 28-12-2012 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 27-12-2012 4257 49 Double Room With TV 1 29661
1105-637 abd 26-12-2012 09-01-2013 26-12-2012 4257 49 Double Room With TV 1 29661
1308-80 arp 09-07-2015 23-07-2015 23-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 22-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 21-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 20-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 19-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 18-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 17-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 16-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 15-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 14-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 13-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 12-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 11-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 10-07-2015 5019-1 49 V 1 177337
1308-80 arp 09-07-2015 23-07-2015 09-07-2015 5019-1 49 V 1 177337
1308-80 arp 04-08-2014 19-08-2014 19-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 18-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 17-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 16-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 15-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 14-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 13-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 12-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 11-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 10-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 09-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 08-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 07-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 06-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 05-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 04-08-2014 19-08-2014 04-08-2014 G-1-2B 49 Outside Rooms 1 111798
1308-80 arp 08-08-2013 20-08-2013 20-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 19-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 18-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 17-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 16-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 15-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 14-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 13-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 12-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 11-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 10-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 09-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1308-80 arp 08-08-2013 20-08-2013 08-08-2013 GH1-2A 49 Guest House-Floor1 1 51580
1505-1041 aan 26-05-2015 10-06-2015 10-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 09-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 08-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 07-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 06-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 05-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 04-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 03-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 02-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 01-06-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 31-05-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 30-05-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 29-05-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 28-05-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 27-05-2015 359 49 Double Room 1 168564
1505-1041 aan 26-05-2015 10-06-2015 26-05-2015 359 49 Double Room 1 168564
1308-183 aavas 30-06-2014 17-07-2014 17-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 16-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 15-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 14-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 13-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 12-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 11-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 10-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 09-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 08-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 07-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 06-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 05-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 04-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 03-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 02-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 01-07-2014 4365 49 Double Room 1 105825
1308-183 aavas 30-06-2014 17-07-2014 30-06-2014 4365 49 Double Room 1 105825
答案 0 :(得分:0)
如果您创建一个新的日期表,那么您可以像这样获得每天的期初余额:
SELECT
Date
,count(registrationid)
FROM
(
select
*
FROM
Dates as d left outer join
Table as t
on t.admitdate < d.Date
and t.DischargeDate >= d.Date
) as a
GROUP BY
Date
日期表:
Date
------------
01/01/2014 -- start of analysis period
02/01/2014
..
..
31/12/2015 -- end of analysis period
内部查询每个患者/用户每天有一行在该日期之前被录取并在当天或之后出院。
使用该组的外部查询只是按天汇总数据。
要获得期末余额,您只需稍微调整一下,以便在其他连接子句上等于wan:
SELECT
Date
,count(registrationid)
FROM
(
select
*
FROM
Dates as d left outer join
Table as t
on t.admitdate <= d.Date
and t.DischargeDate > d.Date
) as a
GROUP BY
Date
要获取一个表中的所有数据,您可以将多个子查询连接在一起,包括这一个:
SELECT
D.Date
,OpeningBalance
,Admissions
,Discharges
FROM
Dates as D
INNER JOIN
(
SELECT
Date
,count(registrationid) as OpeningBalance
FROM
(
select
*
FROM
Dates as d left outer join
Table as t
on t.admitdate < d.Date
and t.DischargeDate >= d.Date
) as a
GROUP BY
Date
) as OB
on D.Date = OB.Date
INNER JOIN
(
SELECT
Date
,count(registrationid) as Admissions
FROM
(
select
*
FROM
Dates as d left outer join
Table as t
on t.admitdate = d.Date
) as a
GROUP BY
Date
) AS A
on D.Date = A.Date
INNER JOIN
(
SELECT
Date
,count(registrationid) as Discharges
FROM
(
select
*
FROM
Dates as d left outer join
Table as t
on t.DischargeDate = d.Date
) as a
GROUP BY
Date
) AS DC
on D.Date = DC.Date
我确信还有其他方法可以做到这一点,但我喜欢有日期表的可靠性。