![](/img/trans.png)
[英]Display 2 columns from one table having max count in column 3 and display computed sum of values from another table
[英]Calculate SUM from one table and display columns from another
我有 2 个表,Employee 和 Transaction
交易
时间标识 | 身份证 | 车牌号 | 身份证 | t日期 | 挑个日子 | 归期 | Amount_Due |
---|
员工
身份证 | 名称 | 姓名 | 工作 | 经理 | 雇用 |
---|
我需要计算佣金 (2.5%) 并将其与 fName 和 lName 一起显示。
我已经计算了佣金,我想我已经正确地完成了连接,但不能完全弄清楚如何添加 SELECT 以显示其他两列。
SELECT t.Amount_Due
, SUM(t.Amount_Due*0.025) AS Commission
FROM [Transaction] t
JOIN Employee e ON t.eID = e.eID
GROUP BY t.Amount_Due
可能只是一个错字 - JOIN
应该是ON t.eID = e.eId
。 您需要包括所涉及的两个表(表别名) - 您目前只使用t.eID
两次。
尝试这个:
SELECT
t.Amount_Due, SUM(t.Amount_Due*0.025) AS Commission
FROM
[Transaction] t
JOIN
Employee e ON t.eID = e.eID
GROUP BY
t.Amount_Due
正如@charlieface 所指出的那样-您对Amount_due
求和似乎很奇怪,同时尝试按同一列进行分组.....我最好的猜测是您可能希望按员工分组,基于他们的eID
- 所以使用这样的东西:
SELECT
e.eID, e.fName, e.lName, SUM(t.Amount_Due*0.025) AS Commission
FROM
[Transaction] t
JOIN
Employee e ON t.eID = e.eID
GROUP BY
e.eID, e.fName, e.lName
为了那个原因。
您按错误的列分组,并且您正在尝试 select Amount_Due
并同时聚合它:
SELECT e.fName
, e.lName,
, SUM(t.Amount_Due * 0.025) AS Commission
FROM [Transaction] t
JOIN Employee e
ON t.eID = e.eID
GROUP BY e.ID, e.fName, e.lName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.