0

私はテーブルを持っています:

Bonus     Value

500       1400

1500       177

1800       453

1200       100

800       2500

200         50

780        740

最大の列の合計を出力したかったのです。

私は以下を試しました:

select 
case when sum(bonus)>sum(Value) then sum(bonus) end
case when sum(Value)>sum(bonus) then sum(Value) end
from emp

しかし、私は結果を得ていませんでした。

エラー:

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'case'.
4

3 に答える 3

5

構文が正しくありません。CASEキーワードは 1 回だけです:

select 
  case when sum(bonus)>sum(Value) then sum(bonus)
     else sum(Value) 
  end as MaxSum
from emp
于 2013-07-04T08:31:20.063 に答える
3

あなたのcase発言は間違っています、これを試してください:

select case when sum(bonus)>sum(Value) then sum(bonus) else sum(Value) end
from emp
于 2013-07-04T08:31:32.790 に答える
1

別の方法:

SELECT TOP (1) *
FROM
  ( SELECT SUM(Bonus) AS MaxSum, 'Bonus' AS SummedColumn FROM emp
    UNION
    SELECT SUM(Value), 'Value' FROM emp
  ) AS tmp
ORDER BY MaxSum DESC ;

SQL-Fiddleでのテスト

于 2013-07-04T08:33:37.617 に答える