繁体   English   中英

从一个表计算 SUM 并显示另一个表的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM