Adventureworks объединяет sales.store с sales.salesorderdetail, чтобы вывести название магазина - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над некоторыми практическими запросами adventureworks и у меня возникают некоторые проблемы.

Я пытаюсь извлечь название магазина из таблицы sales.store и добавить его в таблицу sales.salesorderdetail, чтобыЯ могу видеть, какие «магазины» заказывают определенные товары.

Моя проблема в том, что я не могу найти общий ключ, который позволил бы мне сделать это, если только customerid = businessentityid, в который я не верюэто действительно так.

Я думал, что смогу использовать таблицу person.person для этого, но поскольку у каждого businessentityid не обязательно есть "персона", я не думаю, что это сработает.

Кто-нибудь достаточно знаком с приключенческими работами, чтобы помочь мне?

1 Ответ

0 голосов
/ 03 апреля 2019
select * 
from sales.Store
inner join sales.Customer on sales.Store.BusinessEntityID = sales.Customer.StoreID
inner join sales.SalesOrderHeader on sales.Customer.CustomerID = sales.SalesOrderHeader.CustomerID
inner join sales.SalesOrderDetail on sales.SalesOrderHeader.SalesOrderID = sales.SalesOrderDetail.SalesOrderID

Чтобы найти взаимосвязь, щелкните правой кнопкой мыши таблицу Store в SSMS и просмотрите зависимости. Результирующее дерево показывает, что хранилище подключается к SalesOrderDetail через Customer и SalesOrderHeader.

Store dependencies

Кроме того, вот ограничение, показывающее, что Store.BusinessEntityID присоединяется к Customer.StoreID:

ALTER TABLE [Sales].[Customer]  WITH CHECK ADD  CONSTRAINT [FK_Customer_Store_StoreID] FOREIGN KEY([StoreID])
REFERENCES [Sales].[Store] ([BusinessEntityID])
GO
...