2016-10-24 92 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函数。但是我迄今为止所尝试过的所有内容都会汇总整个专栏,而不是每个人的个别部分。这只是我正在做的更大表格的一个简化示例,所以我不提前知道任何现场数据。我怎样才能在一个查询中做多个总和来获得这个结果?谢谢!

此外,我使用MySQL,如果它很重要。

+1

编辑你的问题,显示你已经尝试了什么。这看起来像一个基本的“GROUP BY”查询。 –

回答

4

我想你想:

select name, sum(case when company = 'CompanyA' then cost else 0 end) as Total 
from t 
group by name; 
相关问题