DimAccounts と FactBudget の 2 つのテーブルがあります。
DimAccounts の例:
AccountKey AccountCode AccountName AccountGroup AccountType
1.6 1 6 1 NN 6 S
1.6 10 6 10 MMM 6 S
1.6 101 6 101 TTT 6 S
1.6 1010 6 1010 IIII 6 B
1.6 1011 6 1011 OOOO 6 B
1.6 1012 6 1012 KKK 6 B
ファクトバジェットの例:
TimeKey AccountKey Debit Credit
20110719 1.6 1010 20.00 5.00
20110719 1.6 1011 15.00 0.00
20110719 1.6 1000 5.00 0.00
20110719 1.6 1012 10.00 5.00
20110719 1.6 1112 10.00 0.00
FactBudget には、タイプ B のアカウントが多数あります。アカウント タイプ S (Sum) の借方と貸方の合計を取得する必要があります。
サンプルデータのソリューション例:
TimeKey AccountKey Debit Credit
20110719 1.6 1 60.00 10.00
20110719 1.6 10 50.00 10.00
20110719 1.6 101 45.00 10.00
合計口座 1.6 101 (空白を含む 7 つの記号) の借方と貸方を計算するには、7 つの記号 (1.6 1012 -> 1.6 101、1.6 1112 -> 1.6 111、1.6 1011->1.6 101) までの factbudget のすべての口座をサブストリング化する必要があります。そして、タイムキーでグループ化し、借方と貸方を合計するために、それらはどこで等しいか(1.6 101 = 1.6 101)です。
合計口座 1.6 1 (空白を含む 5 つの記号) の借方と貸方を計算するには、actbudget のすべての口座を 5 つの記号 (1.6 1012 -> 1.6 1, 1.6 1112 -> 1.6 1, 1.6 1011->1.6 1) に部分文字列化する必要があります。そして、タイムキーでグループ化し、借方と貸方を合計するために、それらはどこで等しいか(1.6 1 = 1.6 1)などです。
では、TimeKey と AccountKey で S Accounts Debit と Cred Sum を取得する方法は?