0

T-SQLスクリプトを実行して、別のテーブルの特定のフィールドによって集計される一時テーブルを作成します。これをテーブルXと呼びます。この一時テーブルの残りのフィールドは、のフィールドで集計関数を実行することによって入力されます。テーブルX。次に、一時テーブルにデータを入力した後、別のテーブル(テーブルYと呼びます)の一時テーブルとマージ/一致した場合を実行します。

この一時テーブルを作成し、集計関数を入力するにはどうすればよいですか?(私はすでに問題のMERGE部分をコーディングしました)。

4

3 に答える 3

2

一時テーブルを作成するには、次のようにします。

create table #temp
(
    id int,
    col1 int
)

その後、あなたは書くでしょうINSERT INTO

INSERT INTO #temp
SELECT col1, sum(col2)
FROM yourTable

一時テーブルを作成したら、それをストアドプロシージャで使用できます。

于 2012-07-23T19:17:47.050 に答える
0

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
  ...
于 2012-07-23T19:47:32.690 に答える
0

1つのSELECTステートメントですべてを実行できます

SELECT col1 AS ID, sum(col2) AS col1 INTO #temp FROM yourTable
于 2014-05-11T22:06:41.910 に答える