Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie man Konten summiert

Soweit ich sehen kann, müssen Sie DimAccounts beitreten zu sich selbst, um B-Typ-Konten mit ihren entsprechenden S-Typ-Konten zu verknüpfen, und verbinden Sie dann diesen Zeilensatz mit FactBudget um endlich die Zahlen zu bekommen. Etwa so:

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