Мне сложно понять правильный синтаксис, чтобы правильно структурировать этот запрос. Я пытаюсь показать ВСЕ записи из SalesHistoryDetail И из таблицы SalesVsBudget. Я считаю, что мой запрос позволяет не записывать некоторые записи в SalesVsBudget, тогда как я хочу, чтобы все они были на этот период, независимо от того, была ли соответствующая продажа. Вот мой код:Как показать все записи из нескольких таблиц независимо от совпадения в заявлении о соединении
SELECT MAX(a.DispatchCenterOrderKey) AS DispatchCenter,
a.CustomerKey,
CASE WHEN a.CustomerKey IN
(SELECT AddressKey
FROM FinancialData.dbo.DimAddress
WHERE AddressKey >= 99000 AND AddressKey <= 99599) THEN 1 ELSE 0 END AS InterCompanyFlag,
MAX(a.Customer) AS Customer,
a.SalesmanID,
MAX(a.Salesman) AS Salesman,
a.SubCategoryKey,
MAX(a.SubCategoryDesc) AS Subcategory,
SUM(a.Value) AS SalesAmt,
b.FiscalYear AS Year,
b.FiscalWeekOfYear AS Week,
MAX(c.BudgetLbs) AS BudgetLbs,
MAX(c.BudgetDollars) AS BudgetDollars
FROM dbo.SalesHistoryDetail AS a
LEFT OUTER JOIN dbo.M_DateDim AS b ON a.InvoiceDate = b.Date
FULL OUTER JOIN dbo.SalesVsBudget AS c ON a.SalesmanID = c.SalesRepKey
AND a.CustomerKey = c.CustomerKey
AND a.SubCategoryKey = c.SubCategoryKey
AND b.FiscalYear = c.Year AND b.FiscalWeekOfYear = c.WeekNo
GROUP BY a.SalesmanID, a.CustomerKey, a.SubCategoryKey, b.FiscalYear, b.FiscalWeekOfYear
Есть два различных набора данных, которые я тянущие из, очевидно таблицы SalesHistoryDetail и таблицы SalesVsBudget. Я надеюсь получить все значения budgetLbs и BudgetDollars из таблицы SalesVsBudget, независимо от того, совпадают ли они в соединении. Мне тоже нужны все совпадающие записи, но я также хочу КАЖДУЮ запись от SalesVsBudget. По сути, я хочу показать ВСЕ записи продаж, и я хочу ссылаться на бюджетные значения из SalesVsBudget, когда продавец, покупатель, подкатегория, год и неделя, но я также хочу видеть записи бюджета, которые попадают в мой диапазон дат, которые не имеют соответствующих продаж за этот период. Надеюсь, это имеет смысл. Я чувствую, что я очень близок, но мои бюджетные номера не отражают всю историю, и я думаю, это потому, что некоторые мои записи исключены! Пожалуйста помоги.