这里是我正在处理的内容: 我给出了一个表(访问),其中包含以下具有示例数据的模式。按日历月计算居住时长
VISIT
VisitNo Location AdmissionDate DischargeDate LengthOfStay
1 A 2012-04-28 2012-05-30 32
2 A 2012-04-20 2013-05-20 90
3 B 2012-04-01 2012-05-01 30
4 B 2012-05-01 2012-05-03 2
.....................................................
的要求是,返回的数据集是在以下的结构。按日历月(YYYYMM)计算每个位置的总长度。
CalendarMonth TotalLengthOfStayEachMonth(AdmissionToDate) Location
201204 xxx x
201205 yyyy y
201206 zzzz z
......... ...............
TotalLengthOfStayEachMonth的计算有点棘手。自录取日期(admissionToDate)以来,这些日子不计算在每月30天的基础上。例如,VISIT表中的第一条记录具有;住宿
- 2天201204
- 2 + 30 = 32201205天的等等...
预先感谢您的建议...仅供参考,我们有几百个一千个地点,五年的数据。
请阅读问题。这只会给出按入场日期分组的总天数。他希望看到入学日期和出院日期之间每个月的天数 – cha
请参阅编辑 - 这会比使用CTE更好地表现。祝你好运。 – sgeddes
这两个解决方案(Cha和这个)都可以工作,但是这个解决方案的性能要好得多。这就是为什么我把这个帖子标记为公认的答案。感谢你们两位。 – Thracian