首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单项订单- AdventureWorks

单项订单- AdventureWorks
EN

Stack Overflow用户
提问于 2019-02-05 16:22:40
回答 1查看 420关注 0票数 1

我想知道我的答案是否适用于这个问题?我在互联网上找到的答案似乎很相似,但他们加入了另一张似乎模棱两可的表格。

问题:“单件定单”是指只订购一件商品的顾客定单。显示每个项目订单的SalesOrderID和UnitPrice。

他们的回答是:

代码语言:javascript
复制
select sod.SalesOrderID, sod.UnitPrice
from SalesLT.SalesOrderDetail sod
inner join SalesLT.SalesOrderHeader soh on soh.SalesOrderID =
sod.SalesOrderID
where sod.SalesOrderID in (
                          select s.SalesOrderID as ordernums
                          from SalesLT.SalesOrderDetail s
                          group by s.SalesOrderID
                          having COUNT(*) = 1
                          );

我的答案是:

代码语言:javascript
复制
SELECT SalesOrderID, UnitPrice
FROM SalesOrderDetail
GROUP BY SalesOrderID
HAVING COUNT(SalesOrderID) = 1;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 16:29:47

如果您运行您的答案,您将得到一个错误,因为UnitPrice不在GROUP BY中。如果添加它,您的HAVING将无法工作。

解决办法很简单。。。您需要一个聚合函数:

代码语言:javascript
复制
SELECT SalesOrderID, MAX(UnitPrice) as UnitPrice
FROM SalesOrderDetail
GROUP BY SalesOrderID
HAVING COUNT(SalesOrderID) = 1;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54538758

复制
相关文章

相似问题

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