0

後で挿入ステートメントの値になる選択ステートメントを作成しています。ほとんどの列は計算フィールドになります。最近、選択中に計算フィールドを再利用できることを知りました。

select
  id,
  @sum1 := col1 + col2 as colSum1,
  @total1 := @sum1 + col3 as colTotal1,
  @gtotal := @sum1 + total1 as colGTotal

結果セットはidcolSum1colTotal1、 の 4 つの列になりcolGTotalます。結果の列を最後の列にする必要がありますcolGTotal

繰り返しますが、この選択ステートメントは挿入の値になります。

INSERT INTO tbltest VALUES (SELECT...)

挿入するだけですcolGTotal

したがって、selectステートメント内で変数の宣言と割り当てが必要であると思いますが(外側にすることはできません)、insertステートメントでフィードされる結果の列の1つとして除外します。

4

1 に答える 1

0

可能であれば、単一の列を生成するようにクエリを書き直してください。

select col1 + col2 + col1 + col2 + col3 as colGTotal

または、この SELECT ステートメントをサブクエリとして使用して、必要な列だけを SELECT することもできます。

INSERT INTO tbltest VALUES (SELECT colGTotal FROM (SELECT id, @sum1 ...) AS foo)
于 2012-06-21T15:26:14.510 に答える