【问题标题】:How to show total sums of all transactions next to the value of each individual transaction如何在每笔交易的价值旁边显示所有交易的总和
【发布时间】:2019-07-16 13:34:45
【问题描述】:

下表显示了客户名称以及每笔交易的销售人员佣金。如何在下表中添加一列以按人显示总佣金金额?例如,“Graham Zusi”仍然有两行,每一行用于唯一交易。但是,将有第三列汇总了他的两次交易。这样就可以并排查看单个交易金额以及从每个客户那里获得的总佣金

感谢您的帮助。

cust_name   TRANSACTION COMMISSION
Brad Davis  360.0900
Fabian Johnson  277.6802
Jozy Altidor    9.7877
Graham Zusi 19.5650
Graham Zusi 123.3050
Julian Green    32.5585

我尝试过使用 GroupBy 和 Sum,但似乎无法获得它。

SELECT c.CUST_NAME,(s.COMMISSION*o.PURCH_AMT)AS "TRANSACTION COMMISSION"
FROM SALESMAN s, CUSTOMER c, ORDERS o
WHERE
o.SALESMAN_ID=s.SALESMAN_ID
AND
o.CUSTOMER_ID=c.CUSTOMER_ID

【问题讨论】:

标签: mysql sql


【解决方案1】:

你应该这样做。

SELECT
  c.CUST_NAME,
  sum(s.COMMISSION * o.PURCH_AMT) AS "TRANSACTION COMMISSION"
FROM
  SALESMAN s,
  CUSTOMER c,
  ORDERS o
WHERE
  o.SALESMAN_ID = s.SALESMAN_ID
  AND o.CUSTOMER_ID = c.CUSTOMER_ID
GROUP BY
  c.CUST_NAME

【讨论】:

  • 嗨 Ed - Group By 似乎将所有客户名称折叠到每个客户的一行中,但目标是保持每一行不变,但添加一列显示每个客户的总数.也许我错过了一些东西——你能解释一下你对 GROUP BY 的使用吗?谢谢。
【解决方案2】:

你可以试试这个方法。

SELECT
c.CUST_NAME,
O.PURCH_AMT,
s.COMMISSION,
(s.COMMISSION * o.PURCH_AMT) AS "TRANSACTION COMMISSION"
FROM
SALESMAN s
left JOIN ORDERS O ON 
o.SALESMAN_ID = s.SALESMAN_ID
LEFT JOIN CUSTOMER C ON
o.CUSTOMER_ID = c.CUSTOMER_ID
GROUP BY
c.CUST_NAME

如果对你没有帮助,你可以回来

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-21
    • 2021-09-29
    • 2021-04-03
    • 2017-01-19
    • 1970-01-01
    • 2013-08-15
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多