Problema de medidas semi -aditivas - soma instantâneos para cada mês, mas não nos meses

StackOverflow https://stackoverflow.com/questions/1801462

  •  05-07-2019
  •  | 
  •  

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 ...

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top