我需要通過使用基於多個字段的一些條件邏輯來對SQL Server 2014表中的某些記錄進行分組,並且我不知道如何執行此操作。我創造了一個人爲的例子來解釋我期待的結果。在SQL中進行分組時的條件邏輯
這是患者醫療程序的一個表:
+----+-------+-----------+---------------+---------------+
| Id | Name | Insurance | ProcedureName | ProcedureDate |
+----+-------+-----------+---------------+---------------+
| 1 | Bob | Medicaid | Blood Test | 2017-06-01 |
+----+-------+-----------+---------------+---------------+
| 2 | Bob | Medicaid | Urinalysis | 2017-06-03 |
+----+-------+-----------+---------------+---------------+
| 3 | Bob | Self Pay | Liver Biopsy | 2017-05-02 |
+----+-------+-----------+---------------+---------------+
| 4 | Bob | Self Pay | CAT Scan | 2017-05-07 |
+----+-------+-----------+---------------+---------------+
| 5 | Sally | Medicaid | Ultrasound | 2017-07-07 |
+----+-------+-----------+---------------+---------------+
| 6 | Sally | Medicaid | X-Ray | 2017-07-12 |
+----+-------+-----------+---------------+---------------+
| 7 | Sally | Medicaid | Blood Test | 2017-08-10 |
+----+-------+-----------+---------------+---------------+
我的名字,這樣我只能用兩個記錄結束了喜歡羣體這些記錄。一個是Bob和一個是Sally。由於字段保險,ProcedureName和ProcedureDate保存不同的值我意識到我需要決定哪些值用於分組中的這些字段。以下是規則:
- 如果保險是醫療補助以外的任何其他方式,請使用非醫療補助記錄中的數據和最新的程序日期。
- 如果保險是全部醫療補助金,則使用最近ProcedureDate的行中的數據。
所以,我想用下面的兩個記錄落得:
+----+-------+-----------+---------------+---------------+
| Id | Name | Insurance | ProcedureName | ProcedureDate |
+----+-------+-----------+---------------+---------------+
| 4 | Bob | Self Pay | Liver Biopsy | 2017-05-02 |
+----+-------+-----------+---------------+---------------+
| 7 | Sally | Medicaid | Blood Test | 2017-08-10 |
+----+-------+-----------+---------------+---------------+
我對這個問題創造了一個sample SqlFiddle here。如何在GROUP BY子句中使用條件邏輯來獲得我想要的答案?
預期的結果不鮑勃符合標準1。 –
@Vamsi - 謝謝!我花了很多時間設置它,我得到的數據不正確。我修正了結果。 – webworm
這兩個規則中,你需要記錄的數據與最近的日期? –