我正在研究SQL,并遇到了一个需要在SQL中构建的场景。 以下是场景:
PatientID AdmitDate DischargeDate
12 7/24/2017 09:45 7/24/2017 11:01
13 7/21/2016 08:37 7/22/2017 00:15
我想要结果集如下:
答案 0 :(得分:-1)
嗯,看起来你所做的一切都会很慢。我想我会使用计数表。该表不仅包含通常n年的日期/日/星期等,而且还包含当天每小时的一条记录。主键代表其中一个段。
然后,您可以将患者的入院日期和出院日期传递给将返回患者所在小时数的列表或范围的功能。因此,患者13可能获得(例如)1500,1517的返回值(即患者进入17小时并且您将知道日期和时间,因为1500将是记录的主键,为您提供日期和他被录取的那一天的小时)。患者12将(继续该示例)返回值1544,1546
然后,您可以通过从计数表返回这些日期之间的所有数据来构建从日期A到日期B的数据集,然后检查特定患者的每小时是否为是。
显示数据 - 您想要的结果集 - 我会在其他地方进行。我可能会返回两个数据集。一个将用于构建您的表结构。另一个将用于决定是否放置' 1'在框中与否。你可以动态地进行总结。
我想在同一日期患者会对此感到有趣......您是否必须分别向每位患者展示?