2016-04-23 7 views
-2

既存の列の量に基づいて新しい列を作成したいとします。私は以下のコードでエラーが発生しています。< =>> =タイプオペランドは1つのレコードしか返せないためです。私はINまたはANY、おそらくすべてのオペランドを使用すべきだと思っていますが、それを正しく実装できないようです。SQLは、別の列のより小さいオペランドに基づいて新しい列を作成します。

ALTER TABLE SALES_TOTAL ADD REFUNDS INTEGER(20); 

UPDATE SALES_TOTAL SET REFUND = SELECT [SALE_TOTAL] from [SALES_TOTAL] WHERE[SALES_TOTAL] < 10 

どのようにすればよいのでしょうか?

ありがとうございます。あなたはおそらく何をしたいのです

+0

エラーとは何ですか? "単一行副問合せは複数の行を戻します" –

+0

はい、本当に - "サブクエリが1より大きい値を返しました。サブクエリが、=、!=、<, <= , >、> =、またはサブクエリが式として使用されている場合は許可されません。 " – eggman

+0

@RuslanOsmanovが質問に答えました。 –

答えて

1

alter table SALES_TOTAL add REFUNDS int unsigned not null default 0; 
update SALES_TOTAL set REFUNDS = SALE_TOTAL where SALE_TOTAL < 10; 
+0

sale_totalが10未満の15の行があるとします。どの値が選択されますか? –

+0

@I_am_Batmanでは、sqlは対応する行を選択するのに十分スマートです。ちょうどそれをテストします。 https://gist.github.com/809cc8e6c2dffa9378d9566661facdf1 –

+0

ポイントが認められました。 –

関連する問題