別のテーブルに挿入する各タイプのレコードの数を決定するためにいくつかの計算を行っているいくつかのテーブルがあります。たとえば、主なエンティティは郡、メンバー、プランです。計算を実行し終えると、次のようになります。
- 25 の [County A] + [Plan 1] レコードをテーブルに挿入します
- [County A] + [Plan 2] の 15 レコードをテーブルに挿入します。
- [County A] + [Plan 3] の 10 レコードをテーブルに挿入する
- [County A] + [Plan 4] の 15 レコードをテーブルに挿入する
- 25 の [County A] + [Plan 5] レコードをテーブルに挿入します
- 63 [County B] + [Plan 1] レコードをテーブルに挿入
- 47 [County B] + [Plan 3] レコードをテーブルに挿入
- 19 の [County B] + [Plan 4] レコードをテーブルに挿入します
INSERTS は次のようになります。
INSERT INTO Assign (ID, CountyID, PlanID)
VALUES (NEWID(), 'A', 1), (NEWID(), 'A', 1), ..., (NEWID(), 'A', 1) -- 25 times
INSERT INTO Assign (ID, CountyID, PlanID)
VALUES (NEWID(), 'A', 2), (NEWID(), 'A', 2), ..., (NEWID(), 'A', 2) -- 15 times
等
次のようなストアド プロシージャ内からこれらの INSERT ステートメントを作成する方法を探しています。
- カーソルや while ループを使用しないでください
- 個別の挿入は行わず、一括挿入アプローチが必要
- CTE を使用していますか? (必須ではありませんが、誰が知っていますか)
この情報はすべて、次のように定義された一時テーブルに格納されます。
CREATE TABLE #holding (countyID CHAR(2), planID INT, perCountyPlan INT)
SELECT * FROM #holding ORDER BY countyID, planID
A 1 25
A 2 15
A 3 10
A 4 15
A 5 25
B 1 63
B 3 47
B 4 19
C .......
etc
#history テーブルのデータに基づいて INSERT を作成する方法はありますか?