Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde.
Possuo uma base com os seguintes dados, cod. usuário, data inclusão e data de exclusão.
Preciso trazer uma informação da quantidade de usuários ativos por período (mês/ano).
Por exemplo:
Usuários: João
Data inclusão: 01/04/2018
Data Exclusão: 30/06/2018 (pode acontecer da data estar vazia caso o usuário ainda esteja ativo).
No meu gráfico por periodo esse usuario apareceria ativo em Abril, Maio e Junho e inativo em Julho por exemplo.
Como poderia resolver essa situação?
Atualmente criei um qvd separado com todos os usuários ativos em cada mês, será que existe outra solução?
Obrigado
Murilo,
Talvez com o uso do IntervalMatch dê pra resolver isso:
Usuários:
Load
[Data Inclusão],
If(IsNull([Data Exclusão]),MakeDate(2099,12,31),[Data Exclusão]) as [Data Exclusão]
[Codigo Usuário]
From Sua_Base;
Calendário:
Load
*
Resident Sua_Tabela_Calendário;
Drop table Calendário;
Left Join (Usuários)
IntervalMatch (Data)
Load
[Data Inclusão],
[Data Exclusão]
Resident Usuários;
Left Join (Usuários)
Load
[Codigo Usuário],
Data,
MonthName(Data) as MesAno,
1 as Ativo
Resident Usuários;
Daí na tela podes fazer um gráfico com:
Dimensão: MesAno
Expressão: Sum(Ativo)
Abs e Sucesso!!
Thiago boa tarde.
Me desculpe a minha ignorância, mas estou com algumas duvidas.
Na linha do IntervalMatch o campo Data é para fazer referencia a algum campo?
Eu criei duas tabelas de calendário, uma fazendo referencia a minha tabela de usuário através das datas de inclusão e exclusão e um calendário que é desvinculado. Qual devo utilizar?
Outra coisa que reparei é que você fez o load do calendário e logo em seguida o drop.
Na minha tabela de usuário existem outros campos de dimensões, com esse script eu irei conseguir realizar filtros por exemplo por uma dessas dimensões?
Obrigado
Abs.