我需要在兩個單獨的表上執行各種聯接/聯合,以將我的結果組合到一個表中。首先,我將分享我擁有的和我需要的,然後我將分享我目前的非工作解決方案。使用不同的WHERE子句連接兩個表的數據
我有什麼:
每個表由執行的操作的列表,每一個操作都有一個
opPatient
(所有患者有多個操作),opClassification
(1,2,3或4),opDate
,opPrice
。A
Start
和End
查詢的日期。
我需要什麼:
產生單個表:
- 的所有不同
opPatients
- 對於每一個病人的列表:
- 總的所有操作
opprice
- 合計用的4分類的所有操作的(分級4僅在
table2
) - 所有操作總數
- 操作的總數的3
- 操作的總數的2 一個分類的分類
- 總的所有操作
- 上述所有
WHERE opDate >= @StartDate AND opDate <= EndDate
當前解決方案的(顯然不工作)
設置
start
和end
日期(這裏沒有錯誤)SET @StartDate = DATEADD(DAY, -(DATEPART(Day, @Date)-1), @Date); SET @EndDate = DATEADD(DAY, -1, (DATEADD(MONTH, 1, @StartDate))); SELECT Operation = (SELECT DISTINCT operation FROM table1 UNION SELECT DISTINCT operation FROM table2), TotalPrice = CAST(opPrice) AS MONEY), TotalOps = COUNT(*), opC4 = COUNT(CASE WHEN opClassification = 4 THEN 1 ELSE Null END) WHERE opDate <= @EndDate AND opDate >= @StartDate FROM table2, opC3 = COUNT (CASE WHEN opClassification = 3 THEN 1 ELSE Null END), opC2 = COUNT (CASE WHEN opClassification = 2 THEN 1 ELSE Null END) FROM table1, table2 WHERE table1.opDate <= @EndDate AND table1.opDate >= @StartDate ORDER BY Operation
所有幫助,提示和指針將不勝感激!
謝謝! 此致敬禮編碼器。
嗨,只是一些額外的信息:對於操作,數據必須開始日期和結束日期之間的檢索,以及。非常感謝你花時間查看答案!我真的很感激^^ – user1736733