“单项订单”是客户订单,其中只有一个项目被订购。显示每一项订单的SalesOrderID和UnitPrice
嗨,我试过这个问题,以下是我的答案:
SELECT s.salesOrderID, s.UnitPrice
FROM SalesOrderDetail s
INNER JOIN Product p ON s.ProductID = p.ProductID
GROUP BY s.salesOrderID, s.unitPrice
HAVING count(s.OrderQty) = 1.please让我知道这是否是当前的,或者提供一个解决方案.Looking的答案。
谢谢
发布于 2018-10-09 11:01:23
我建议:
SELECT MAX(s.salesOrderID) as salesOrderId, MAX(s.UnitPrice) as UnitPrice
FROM SalesOrderDetail s
GROUP BY s.OrderID
HAVING COUNT(*) = 1;根据您的查询,UnitPrice在SalesOrderDetail而不是Product中,因此JOIN是不必要的。如果UnitPrice真的在Product中,那么您就需要JOIN。
注意查询的逻辑。您希望计算每个订单的数字订单详细记录。所以,这应该是聚合。HAVING子句确保订单只有一个详细记录。
因此,MAX()函数返回该单行的值。
发布于 2021-01-14 01:47:43
我把这个问题看作是一个客户订单,它的订单数量是1,连接是不可缺少的,因为所有需要的数据都在一个表中。这是我的解决方案:
SELECT SalesOrderID, UnitPrice
FROM SalesOrderDetail
WHERE SalesOrderID IN
(SELECT SalesOrderID
FROM SalesOrderDetail
GROUP BY SalesOrderID HAVING COUNT(ProductID) = 1) AND OrderQty = 1这就消除了一个数量的多个项目的订单。
SQLZoo没有这些答案的笑脸,所以我不确定我是否正确;)
https://stackoverflow.com/questions/52714609
复制相似问题