私が見る限り、あなたは DimAccounts
に参加する必要があります それ自体に B タイプのアカウントを対応する S タイプのアカウントに関連付け、その行セットを FactBudget
に結合します 最終的に数値を取得します。このようなもの:
SELECT f.TimeKey, s.AccountKey, SUM(f.Debit) AS Debit, SUM(f.Credit) AS Credit FROM DimAccounts s INNER JOIN DimAccounts b ON b.AccountCode BETWEEN s.AccountFrom AND s.AccountTo INNER JOIN FactBudget f ON f.AccountKey = b.AccountKey WHERE s.AccountType = 'S' AND b.AccountType = 'B' GROUP BY f.TimeKey, s.AccountKey
プレ>