結果を 1 つのテーブルに結合するには、2 つの別々のテーブルでさまざまな結合/結合を実行する必要があります。最初に、私が持っているものと必要なものを共有し、次に現在機能していないソリューションを共有します。
私が持っているもの:
各表は実行された操作のリストで構成され、各操作には
opPatient
(すべての患者が複数の操作を行った)、opClassification
(1、2、3、または 4)、、、、opDate
が含まれopPrice
ます。Start
クエリのEnd
日付。
必要なもの:
単一のテーブルを作成するには:
- すべての個別のリスト
opPatients
- 各患者について:
opprice
すべての操作の合計- 分類 4 の全操作の合計
opPrice
(分類 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
すべてのヘルプ、ヒント、およびポインターをいただければ幸いです。
ありがとう!!よろしくお願いします。