Problema de medidas semi -aditivas - soma instantâneos para cada mês, mas não nos meses
Pergunta
Proficiente com SQL, mas novo no MDX, estou tendo problemas para entender isso:
Eu tenho uma tabela de fatos que contém instantâneos de saldos de conta mensalmente. Eu preciso enrolar os saldos como uma medida semi -aditiva - a soma direta não funciona, obviamente, para saldos. No entanto, eu preciso somar todos os saldos em cada mês, separadamente, acrescentando os saldos de todas as contas e, portanto, a noção de "` `` `` `` `` `` `` `”) Exemplo, se os fatos se parecem com o seguinte:
Date AccountNo Balance
2009-01-31 1111 $100
2009-01-31 2222 $100
2009-01-31 4444 $100
2009-01-31 5555 $100
2009-02-28 1111 $100
2009-02-28 2222 $200
2009-02-28 3333 $500
2009-02-28 5555 $50
etc.
E eu tenho uma dimensão da conta que os grupos contam em uma hierarquia de categoria / categoria / conta de categoria principal, preciso de saída como essa, que resume os saldos para cada mês em todas as contas:
Month Total
January 09 $400
February 09 $850
E quebrado por tipo de conta:
Month Total
January 09 $400
Type 1 $200
1111 $100
2222 $100
Type 2 $200
February 09 $850
Type 1 $300
Type 2 $550
Mas, os saldos não devem resumir ao longo de meses, quartos ou anos, porque não faz sentido, e eles seriam contados duas vezes. Qualquer intervalo de tempo mais longo deve mostrar o fechamento do período:
Quarter WRONG Correct
Q1 $1250 $850 // should be the sum of balances for the *last* month in Q1
Type 1 $500 $300
Type 2 $759 $550
Se eu usar a agregação de "LastNonEmpty", pareço obter apenas a linha da última conta literal por um mês, não a soma dos saldos da conta no último mês. É como se o total do mês estivesse mostrando apenas o saldo retirado de uma conta aleatória presente naquele mês, e não o total. (Tenho certeza de que não é realmente aleatório, provavelmente está escolhendo um com base em ordem de armazenamento ou algo assim)
Tenho certeza de que estou apenas fazendo algo simples, errado ...
Solução
Acho que resolvi este: meus dados de origem com os saldos eram muito escassos - havia uma linha apenas para saldos diferentes de zero e sem linhas de contas quando o saldo é zero. Isso fez com que tudo fuja (imagine como inventário, onde você tem contagens de peças, e essas contagens geralmente são zero, mas quando são 0, então a linha está faltando na tabela de fatos)
Consegui criar uma visualização na fonte de dados que "adicionaria novamente" todas as linhas adicionais, com zero saldos e, depois disso, a função de fechamento () começou a funcionar como esperado.