1

好的,我需要计算公司每个销售代理的销售额,所以我这样做......

SELECT agentID, AgentName, COUNT(*) as total_sales FROM sales GROUP BY agentID

这完美地工作,但是它没有显示销售量为 0 的代理。

所以我需要执行一个

SELECT agentID FROM agents

并对每个结果进行查询,这样我就可以计算出该代理的销售额。我希望我解释一下。

(我可以在 PHP 中执行循环,但我想知道是否可以直接在 MySQL 中执行)

问候

4

2 回答 2

6

你可以用一个查询做你想做的事:

select a.agentId, a.agentName, count(s.agentId) as total_sales
from agents a left outer join
     sales s
     on a.agentId = s.agentId
group by a.agentId, a.agentName;

left outer join所有内容保存在第一个表 ( agents) 中。count()正在计算表中的匹配数sales

于 2013-08-28T14:09:33.513 回答
1

你可以结合这些:

SELECT agents.agentID, AgentName, COUNT(sales.id) as total_sales 
FROM 
agents 
LEFT JOIN sales ON (sales.agentId = agents.agentId)
GROUP BY agentID
于 2013-08-28T14:10:32.800 回答