首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adventure 2014 SQL查询

Adventure 2014 SQL查询
EN

Stack Overflow用户
提问于 2017-10-30 21:29:55
回答 3查看 5.7K关注 0票数 0

我正在使用Adventure 2014数据库编写一个SQL查询。

我想告诉所有的客户和每个客户有多少订单。

我尝试自己编写每个select语句(参见下面),但我希望能够将这两个查询合并为一个。

代码语言:javascript
复制
select  s.CustomerID ,p.FirstName +' '+p.LastName as Name 
from Sales.Customer s,Person.Person p 
where s.CustomerID=p.BusinessEntityID
order by s.CustomerID


select CustomerID ,count(SalesOrderID) as OrdersCount
from Sales.SalesOrderHeader
group by CustomerID
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-30 21:35:45

代码语言:javascript
复制
 SELECT s.CustomerID ,
        p.FirstName +' '+p.LastName as Name,
        count(SalesOrderID)
 FROM Sales.Customer s
 JOIN Person.Person p 
   ON s.CustomerID=p.BusinessEntityID
 LEFT JOIN Sales.SalesOrderHeader so
   ON s.Customer_ID = so.Customer_ID  
 GROUP BY s.CustomerID ,
        p.FirstName +' '+p.LastName as Name 
 order by s.CustomerID
票数 0
EN

Stack Overflow用户

发布于 2019-01-02 01:35:45

我给你加上了一些新的东西。无论如何,OVER(column_name分区)子句被用作GROUP BY的替换,因为您打印的列比GROUP BY子句所允许的列要多。

票数 0
EN

Stack Overflow用户

发布于 2020-06-29 10:11:03

表Sales.Customer References:Person.Person (PersonID -> BusinessEntityID)

代码语言:javascript
复制
SELECT s.CustomerID 
        ,p.FirstName +' '+p.LastName as Name
        ,COUNT(so.SalesOrderDetailID)
 FROM Sales.Customer s
 JOIN Person.Person p 
   ON s.PersonID=p.BusinessEntityID
 LEFT JOIN Sales.SalesOrderHeader h 
   ON h.CustomerID = s.CustomerID
 LEFT JOIN Sales.SalesOrderDetail so
   ON so.SalesOrderID = h.SalesOrderID
 GROUP BY s.CustomerID ,
        p.FirstName +' '+p.LastName
 order by s.CustomerID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47024467

复制
相关文章

相似问题

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