首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adventureworks广场

Adventureworks广场
EN

Stack Overflow用户
提问于 2018-10-09 06:26:52
回答 2查看 707关注 0票数 0

“单项订单”是客户订单,其中只有一个项目被订购。显示每一项订单的SalesOrderID和UnitPrice

嗨,我试过这个问题,以下是我的答案:

代码语言:javascript
复制
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的答案。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-09 11:01:23

我建议:

代码语言:javascript
复制
SELECT MAX(s.salesOrderID) as salesOrderId, MAX(s.UnitPrice) as UnitPrice
FROM SalesOrderDetail s
GROUP BY s.OrderID
HAVING COUNT(*) = 1;

根据您的查询,UnitPriceSalesOrderDetail而不是Product中,因此JOIN是不必要的。如果UnitPrice真的在Product中,那么您就需要JOIN

注意查询的逻辑。您希望计算每个订单的数字订单详细记录。所以,这应该是聚合。HAVING子句确保订单只有一个详细记录。

因此,MAX()函数返回该单行的值。

票数 0
EN

Stack Overflow用户

发布于 2021-01-14 01:47:43

我把这个问题看作是一个客户订单,它的订单数量是1,连接是不可缺少的,因为所有需要的数据都在一个表中。这是我的解决方案:

代码语言:javascript
复制
SELECT SalesOrderID, UnitPrice
FROM SalesOrderDetail
WHERE SalesOrderID IN
(SELECT SalesOrderID
    FROM SalesOrderDetail
GROUP BY SalesOrderID HAVING COUNT(ProductID) = 1) AND OrderQty = 1

这就消除了一个数量的多个项目的订单。

SQLZoo没有这些答案的笑脸,所以我不确定我是否正确;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52714609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档