SQL sum of order value from joining two tables
我想从另一个表中获取每个订单的销售额总和,以及客户和员工的详细信息
订单明细表
1 2 3 4 5 6 | OrderID ProductID UnitPrice Quantity Discount 10248 11 10 1 0 10248 42 20 2 0 10248 72 20 3 0 10249 14 10 1 0 10249 51 40 2 0 |
订单表
1 2 3 | OrderID CustomerName EmployeeName 10248 C1 E1 10249 C2 E2 |
想要的结果
1 2 3 | orderid sales Customer Employee 10248 110 C1 E1 10249 90 C2 E2 |
所以我需要每个订单的总销售额(例如 10248 个订单的销售额为 10*1 20*2 20*3 = 10 40 60=110)以及相应的员工姓名和客户姓名
查询已尝试
1 2 3 4 | SELECT od.orderid, Unitprice * Quantity AS sales GROUP BY od.orderid FROM [ORDER Details] od INNER JOIN orders o ON od.orderid = o.orderid |
错误:
Incorrect syntax near the keyword 'From'.
需要按订单聚合,然后取每个订单的销售额之和:
1 2 3 4 5 6 7 8 | SELECT od.orderid, SUM(Unitprice * Quantity) AS sales FROM [ORDER Details] od INNER JOIN orders o ON od.orderid = o.orderid GROUP BY od.orderid; |
之前
1 2 3 | SELECT od.orderid, unitprice * quantity AS sales FROM [ORDER Details] od GROUP BY od.orderid; |
加入订单信息:
1 2 3 4 5 6 7 8 9 | SELECT o.orderid, od.sales, o.customername, o.employeename FROM orders o JOIN ( SELECT orderid, unitprice * quantity AS sales FROM [ORDER Details] GROUP BY orderid ) od ON od.orderid = o.orderid ORDER BY o.orderid; |
尝试以下操作,您在
1 2 3 4 5 6 7 | SELECT od.orderid, SUM(Unitprice * Quantity) AS sales FROM [ORDER Details] od INNER JOIN orders o ON od.orderid=o.orderid GROUP BY od.orderid |
将
1 2 3 4 5 6 7 8 | SELECT od.orderid, SUM(od.Unitprice * od.Quantity) AS sales, ot.CustomerName, ot.EmployeeName FROM od INNER JOIN ot ON od.orderid=ot.orderid; GROUP BY od.orderid; |
您应该能够使脚本适应您的数据库。