2016-10-24 8 views
-1

私はかなり新しいSQLです。同じステートメントで複数の合計を実行する方法を理解する必要があります。たとえば、あなたがこのようなテーブルに何かを持っている想像...単一のSQLクエリで複数のSUMステートメントを実行するにはどうすればよいですか?

+----+---------------+-------------+------------+-----------+ 
| id | name   | order_num | cost  | company | 
+----+---------------+-------------+------------+-----------+ 
| 1 | John Smith |   0 |  10.00 | CompanyA | 
| 2 | Sally Thomas |   1 |  38.00 | CompanyA | 
| 2 | Sally Thomas |   2 |  12.00 | CompanyA | 
| 1 | John Smith |   3 |  19.00 | CompanyA | 
| 2 | Jimmy John |   4 |  40.00 | CompanyB | 
+----+---------------+-------------+------------+-----------+ 

私はA社で各顧客のために費やした名前と合計を返すクエリを記述したいと思います。基本的に...

+---------------+------------+ 
| name   | total  | 
+---------------+------------+ 
| John Smith |  29.00 | 
| Sally Thomas |  50.00 | 
| Jimmy John |  0.00 | 
+---------------+------------+ 

これを行うには、私はsum関数を使用する必要があることを知っています。しかし、私がこれまでに試したことは、各人の個々の部分ではなく、列全体を集計することになりました。これは私がこれをやっている大きなテーブルの単なる単純な例なので、あらかじめフィールドのデータを知りません。この結果を得るために、1つのクエリで複数の合計を実行するにはどうすればよいですか?ありがとう!

また、重要であればMySQLを使用しています。

+1

編集ご質問、あなたがしようとしているかを示します。これは、基本的な 'GROUP BY'クエリのように見えます。 –

答えて

4

私は、あなたがしたいと思う:

select name, sum(case when company = 'CompanyA' then cost else 0 end) as Total 
from t 
group by name; 
関連する問題