【发布时间】:2019-07-04 03:46:07
【问题描述】:
我有一个包含 3 个不同表的示例数据库,customers、orders、orderdetails。
任务是显示客户表中的客户名称和地址,然后按订单 ID 显示每个订单的总金额。订单详细信息有多次订单 ID,它是按单位 x 价格计算的,所以我必须在执行计算后将它们相加。
Customers 有一个字段 customerid,我可以用它来加入具有相同字段的订单,orders 表有 orderid,我可以用它来加入 orderdetails 并对订单总额求和,但我不知道如何放置信息一起。客户表没有计算总订单的字段,只有customerid。所以,我试图从 3 个表中捏在一起,其中有一些相关的列,但不是每个表中都存在。
我可以执行 2 个单独的选择语句,每个语句都按照我的预期执行,但我一直在尝试将信息汇总在一起,但一直无法做到。
SELECT c.CustomerID, c.[Address], o.orderid
FROM Customers c
Join Orders o
ON c.CustomerID = o.CustomerID
--how to join these together?
SELECT od.orderid, SUM(od.UnitPrice*od.Quantity) as 'Subtotal'
FROM OrderDetails od
Join Orders o
ON od.OrderID = o.OrderID
Group by od.OrderID
我正在尝试使用以下信息来展示这一点:
Customer Name, Address, OrderID, and Order Total.
【问题讨论】:
-
这里有一个提示,尝试一次将所有三个表加入...
SELECT ..... FROM Customers c JOIN Orders o ON c.CustomerID = o.CustomerID JOIN OrderDetails od ON od.OrderID = o.OrderID -
我建议 UNION
-
感谢您的回复。我会试试这个。
标签: sql-server