0
[UNIT] [PRICE] [QUANTITY] [REVENUE]     [PERCENTAGE]
A      $10     25         $250           25%
B      $5      30         $150           15%
C      $20     30         $600           60%
Total Revenue             $1,000             100%

[PERCENTAGE] 列を計算するためのクエリを作成しようとしています。使用したのは次のとおりです。

UPDATE Table
SET [PERCENTAGE] = (PRICE*QUANTITY)/(sum(PRICE*QUANTITY)

エラーメッセージは次のとおりです。

集計は、UPDATE ステートメントのセット リストに表示されない場合があります。

なにか提案を?

読んでくれてありがとう。

4

2 に答える 2

2
UPDATE
    t1 target
    CROSS JOIN t1 src
SET
    target.PERCENTAGE = target.PRICE * target.QUANTITY / 
(SELECT SUM(src.PRICE * src.QUANTITY))
于 2013-02-23T02:06:30.077 に答える
0

ウィンドウ関数とwith句を使用してこれを行うことをお勧めします。

with toupdate as (
      select t.*,
             sum(price*quantity) over () as total
      from t
     )
update toupdate
    set percentage = price*quantity / total;
于 2013-02-23T03:01:53.023 に答える