首页 > 解决方案 > Adventureworks 通过 sales.salesorderdetail 加入 sales.store 以获取商店名称

问题描述

我正在处理一些冒险作品练习查询并且遇到了一些问题。

我正在尝试从 sales.store 表中提取商店名称并将其添加到 sales.salesorderdetail 表中,以便查看哪些“商店”正在订购特定商品。

我的问题是我似乎无法找到一个通用密钥来允许我这样做,除非 customerid = businessentityid,我不相信它会这样做。

我以为我可以使用 person.person 表将其引入,但由于每个 businessentityid 不一定有一个“人”,我认为这不会起作用。

有足够熟悉冒险作品的人来帮助我吗?

标签: sqlsql-serverjoinadventureworks

解决方案


select * from

(select * from sales.SalesOrderDetail where year(modifieddate)=2012 and month(modifieddate)=3) as x

left join

(select CustomerID, salesorderid from sales.SalesOrderHeader) as y

on y.SalesOrderID=x.SalesOrderID

left join 

(select StoreID, CustomerID from sales.customer) as z

on z.CustomerID=y.CustomerID

left join

(select BusinessEntityID, name from sales.store) as w

on w.BusinessEntityID=z.StoreID

推荐阅读