-- 1.List all the employee with total sales.
select distinct E.Id,E.Name,P.Productname,S.saleprice from Sales S,Emp E,Product P
where E.Id=S.Emp_id and P.Id=S.Product_id
请看第一个问题的结果
-- 2.Fetch the employee with highest sales.
select S.Emp_id,E.Name,SUM(S.saleprice) AS TotalSalePrice from Sales S,Emp E
where E.Id=S.Emp_id
Group By S.Emp_id,E.Name
SELECT emp_id, SUM(salesprice) AS total_sales
FROM sales
GROUP BY emp_id
ORDER BY total_sales DESC -- comment 2 lines to get answer for 1 question
LIMIT 1; -- MySQL version for SQL Server use `SELECT TOP 1`
SELECT e.id, e.name, SUM(s.salesprice) AS total_sales
FROM emp e
LEFT JOIN sales s
ON e.id = s.emp_id
GROUP BY e.id, e.name
ORDER BY BY total_sales DESC LIMIT 1;
2条答案
按热度按时间fsi0uk1n1#
我想你可以这样做。但更好的方法是使用join语句。但根据您的要求,您可以这样做。我认为这是最简单的方法,也是非常简单的查询。
我提供了createtable和示例数据插入查询。
这是你要求的答案
请看第一个问题的结果
请看第二个问题的结果
这是为您的需求创建的createtable和sampledatainsert查询
uemypmqf2#
如果你只能参考emp\u id,那么就没有必要使用
JOIN
完全:请注意,如果特定员工没有任何销售,则将跳过。对于不存在的数据,将不会获得0/null值。
编辑:
如果你决定使用
JOIN
然后: