T-SQLスクリプトを実行して、別のテーブルの特定のフィールドによって集計される一時テーブルを作成します。これをテーブルXと呼びます。この一時テーブルの残りのフィールドは、のフィールドで集計関数を実行することによって入力されます。テーブルX。次に、一時テーブルにデータを入力した後、別のテーブル(テーブルYと呼びます)の一時テーブルとマージ/一致した場合を実行します。
この一時テーブルを作成し、集計関数を入力するにはどうすればよいですか?(私はすでに問題のMERGE部分をコーディングしました)。
T-SQLスクリプトを実行して、別のテーブルの特定のフィールドによって集計される一時テーブルを作成します。これをテーブルXと呼びます。この一時テーブルの残りのフィールドは、のフィールドで集計関数を実行することによって入力されます。テーブルX。次に、一時テーブルにデータを入力した後、別のテーブル(テーブルYと呼びます)の一時テーブルとマージ/一致した場合を実行します。
この一時テーブルを作成し、集計関数を入力するにはどうすればよいですか?(私はすでに問題のMERGE部分をコーディングしました)。
一時テーブルを作成するには、次のようにします。
create table #temp
(
id int,
col1 int
)
その後、あなたは書くでしょうINSERT INTO
INSERT INTO #temp
SELECT col1, sum(col2)
FROM yourTable
一時テーブルを作成したら、それをストアドプロシージャで使用できます。
bluefeetが投稿したもの、または:
with rsAggregated as
(
select id, sum(x)
from tableX
group by id
)
merge...
または、マージステートメントが表示されないだけです
merge tableY using
(
select id, sum(x)
from tableX
group by id
) rsAggregated
on rsAggregated.id = tableY.id
when matched
...
when not matched
...
1つのSELECTステートメントですべてを実行できます
SELECT col1 AS ID, sum(col2) AS col1 INTO #temp FROM yourTable