Я использую базу данных AdventureWorks2012 и Microsoft SQL Server 2012. Я пытаюсь вернуть SalesOrderID, год & Месяц даты заказа, общая сумма, территория территории, название территории, State Shipping Order To, а также имя первого и последнего имени отдела продаж, присвоенное заказу. Я использовал кучу объединений, и это то, что у меня есть в коде ниже.Проблемы с результатами запроса кода с использованием AdventureWorks и SQL Server
SELECT OH.SalesOrderID AS SalesOrderID,
YEAR(OH.OrderDate) AS [Year],
MONTH(OH.OrderDate) AS [Month], OH.TotalDue AS TotalDue,
ST.[Group] AS [Group],
ST.Name AS TerritoryName, SP.Name AS ShipState,
(SalesP.FirstName + ' ' + SalesP.LastName) AS SalesRepName
FROM Sales.SalesOrderHeader OH
INNER JOIN Sales.SalesTerritory ST
ON OH.TerritoryID = ST.TerritoryID
INNER JOIN Sales.vSalesPerson SalesP
ON OH.SalesPersonID = SalesP.BusinessEntityID
INNER JOIN [Person].[StateProvince] SP
ON ST.TerritoryID = SP.TerritoryID
INNER JOIN [Person].[Address] A
ON OH.ShipToAddressID = A.AddressID
GROUP BY OH.SalesOrderID, OH.OrderDate,
OH.TotalDue, ST.[Group], ST.Name,
SP.Name, SalesP.FirstName, SalesP.LastName
Когда я выполнить следующий код, я получаю кучу SalesOrderID записей и, кажется, назвать все возможное Ship государство к записям. В основном я получаю больше записей, чем должен. Я не совсем уверен, что я делаю неправильно в своем коде, я чувствую, что мои соединения правильные, но я не получаю точные данные. Я ищу каждый SalesOrderID, чтобы получить 1 результат, не так много. Любая помощь будет оценена по достоинству.
Благодарю вас, Дэйв! Я знал, что я на правильном пути, но застрял. Цените помощь с ней, а также объяснение! – smul86