2017-08-16 175 views
-3

我正在研究SQL,並遇到需要使用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 

我想導致設置如下:

enter image description here

  • 對於patientID 13,計數在第一2行被計算和
  • 對於patientid 12,計數在最後一行計算。
+3

您正在使用哪種RDBMS?請修改標籤,除非您專門尋找適用於多種類型的答案 – Bridge

+0

一次只能有患者嗎? – Whencesoever

+1

你有沒有試過爲此寫任何東西呢?如果是這樣,請展示它。請注意,使用SQL可能無法直接獲得所需的輸出佈局。你可能需要在你的UI層做到這一點。在顯示的輸出中,如何查看哪個記錄是針對哪個患者的?目前尚不清楚。或者它不相關?例如如果患者的時間重疊1小時,那麼我們是否會期望在那一小時顯示「2」,因爲當時有2名患者正在接受治療?這還不清楚。我認爲我們需要一些更好的樣本數據才能得到這個結果 – ADyson

回答

-1

那麼,看起來像你做的任何事情都會很慢。我想我會用一個理貨表。該表格不僅包含通常n年的日期/日/星期等,還包含當天每小時的一條記錄。主鍵將代表這些分段中的一個。

然後,您可以將患者的入院日期和出院日期傳遞給將返回患者所在小時的列表或範圍的函數。因此,患者13可能得到(例如)1500,1517的返回值(即,患者進入17小時,並且您將知道日期和時間,因爲1500將是記錄的主鍵,爲您提供日期和時間他被錄取的一天中的一小時)。患者12將(繼續該示例)返回值1544,1546

然後,您可以通過從計數表中返回這些日期之間的所有數據,然後檢查是否每個小時對特定患者是肯定的或不肯定的。

數據的顯示 - 你想要的結果集 - 我會在其他地方做。我可能會返回兩個數據集。一個將被用來建立你的表格結構。另一個將用於決定是否在框中放置'1'。你可以做你的總結。

我想這會讓患者在同一日期變得有趣......您必須分別顯示每個患者?