このクエリを正しく構成するための適切な構文を理解することができません。私は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
明らかに私から引っ張っています2つの異なるデータセット、SalesHistoryDetailテーブルとSalesVsBudgetテーブルがあります。私は、すべてのbudgetLbsとBudgetDollarsの値を、SalesVsBudgetテーブルから、それらが結合で一致するかどうかにかかわらず取得することを望んでいます。一致する結合レコードもすべて必要ですが、SalesVsBudgetのすべてのレコードも必要です。基本的には、すべての売上レコードを表示したいと思います。セールスマン、顧客、サブカテゴリ、年、週が一致したときにSalesVsBudgetから予算値を参照したいのですが、私の日付範囲に該当するその期間の売上記録。うまくいけばそれは理にかなっている。私は非常に近いと感じていますが、私の予算番号は全話を反映していないので、私の記録の一部が除外されていると思います!助けてください。