0

同じテーブルの同じIDでデータベースに合計値が必要です。データベース内のテーブル:

| ID | Value_o | Value_t | Value_tt |
|  1 |   40    |    20   |   10     |

クエリ:

SELECT SUM(Value_o) AS Value_o, SUM(Value_t) AS Value_t, SUM(Value_tt) AS Value_TT 
WHERE ID IN(1, 1)

そして今、出力ID:

| Value_o | Value_t | Value_tt |
|   40    |    20   |   10     |

でも私はしたい:

| Value_o | Value_t | Value_tt |
|   80    |    40   |   20     |

JOINなしでこの出力を取得したい。

ありがとう!

PS。私の悪いengをごめんなさい:/

4

3 に答える 3

1

多分これはあなたが探しているものです:

SELECT 
  SUM(Value_o) AS Value_o, 
  SUM(Value_t) AS Value_t, 
  SUM(Value_tt) AS Value_TT 
FROM
  (
  SELECT ID, Value_o, Value_t, Value_tt FROM Table1 
  UNION ALL 
  SELECT ID, Value_o, Value_t, Value_tt FROM Table1
  ) Table2 
WHERE ID IN(1, 1);

デモ

于 2013-03-17T21:53:24.453 に答える
0

これを試して:

SELECT SUM(Value_o) AS Value_o, SUM(Value_t) AS Value_t, SUM(Value_tt) AS Value_TT 
FROM TABLE
GROUP BY ID
HAVING ID = 1
于 2013-03-17T21:44:31.973 に答える
0

MySQLinオペレーターはこのようには機能しません。セットに複数回値がある場合でも、結果の行が複製されることはありません。

union allすべての行を複数回取得する場合は、それを使用して合計する必要があります

SELECT SUM(Value_o) AS Value_o, SUM(Value_t) AS Value_t, SUM(Value_tt) AS Value_TT 
from (select * from mytable union all select * from mytable) t
WHERE ID IN (1)
于 2013-03-17T22:00:20.200 に答える