Ir para conteúdo
  • 0

Dim Calendário e Dim Hora - Analise Temporal


Alex Rampanelli
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Olá a todos! 

Atualmente estou trabalhando em um projeto novo que envolve analise temporal, não apenas com datas, mas também com horas. E estou "apanhando" muito hehe

Espero obter ajuda, seja de qualquer forma para me dar um rumo a resolução desse problema.

 

PROJETO

Criar um analise de distancia percorrida de acordo com um período da datahora, por exemplo:

- Qual foi a distância percorridas do veículo XLS-7854 entre 12/02/2024 08:35:00 até dia 16/02/2024 16:10:15

Em anexo coloquei o modelo de relacionamento de como está o projeto.

Fato BlackBox: Tabela fato que possui as informações do trajeto percorrido daquele veículo a cada segundo (Informações de Telemetria)

Dim Veículo: Dimensão com a informações de cada veículo

Dim Calendário: Granularidade dia 

Dim Hora: Granularidade segundo

....

A Fato possui a coluna bkcalendario (Ligação com a Dim Calendario) e a coluna bkhora (Ligação com a Dim Hora), além das demais colunas como distancia, consumo e demais chaves estrangeiras que ligam com as demais dimensões.

image.png.067db72241b3d2c3fc3b91b216f7c968.png

DAX

KM Total rodado = sum('Fato BlackBox'[vl_destancia])

 

VISUAL 

Na tela coloquei três segmentações de dados:

 - Data

- HH:mm:SS

- Veículo

E um cartão com a medida KM Total Rodado

Obs. Verificar em anexo

image.png.470b2ce0d910e7c0a55b4324cca622a6.png

PROBLEMA

Quando faço o filtro conforme as datas especificadas na pergunta acima alguns dados são desconsiderados, e isso faz sentido, mas não sei outra de forma de resolução.

Para deixar mais claro, vou exemplificar.

 

- No dia 12/02/2024 o veículo rodou o dia todo, ou seja, das 00:00:00 até as 23:59:59 um total de 300kms
- No dia 13/02/2024 o veículo rodou das 07:30:00 até as 10:00:00 um total de 100kms
- No dia 14/02/2024 rodou o dia todo um total de 200kms
- No dia 15/02/2024 rodou o dia todo um total de 200kms
- No dia 16/02/2024 rodou o dia todo um total de 200kms

Quando eu filtro na segmentação de data do dia 12/02 até dia 16/02 ele vai puxar corretamente o KM rodado, ou seja 1000KMs rodados.
O problema está quando filtro a HH:MM:SS, seguindo a pergunta, eu filtro a seguinte data 12/02/2024 08:35:00 até dia 16/02/2024 16:10:15.
Quando filtro dessa forma, ele pega apenas os KMs que rodei entrei as 08:35:00 até as 16:10:15 de cada dia. Quando na verdade o que gostaria de obter são os totais de KMs que ele rodou entre 12/02/2024 08:35:00 até as 16/02/2024 16:10:15.

 

Caso não tenha ficado claro alguma, por favor, só me avisar que explico melhor.

 

Agradecido desde já.



 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Suave @Alex Rampanelli?

Antes de comecar so um comentario: o teu modelo esta muito bem organizado entre Dimensoes x Fato, parabens!

Para resolver esse problema voce precisa modificar o contexto dos filtros na tua medida [KM Total rodado] para que ele faca a soma dos KMs entre a MENOR datahora selecionada e a MAIOR datahora selecionada.

Tenta fazer algo assim, ajustando para o teu modelo:

Citar

KM Total rodado =
VAR _MinDatetime = MIN('Dim Calendario'[Data]) + MIN('Dim Hora'[Hora])
VAR _MaxDatetime = MAX('Dim Calendario'[Data]) + MAX('Dim Hora'[Hora])
RETURN
    CALCULATE(
        SUM('Fato BlackBox'[vl_destancia]),
        FILTER(
            ALL('Fato BlackBox'),
            'Fato BlackBox'[bkcalendario] + 'Fato BlackBox'[bkhora] >= _MinDatetime,
            'Fato BlackBox'[bkcalendario] + 'Fato BlackBox'[bkhora] <= _MaxDatetime
        )
    )

Se essa resposta te ajudou, não se esqueça de marcar como melhor solução 😉

Abs!

Editado por Joao Raulino
  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 28/02/2024 em 17:50, Joao Raulino disse:

Suave @Alex Rampanelli?

Antes de comecar so um comentario: o teu modelo esta muito bem organizado entre Dimensoes x Fato, parabens!

Para resolver esse problema voce precisa modificar o contexto dos filtros na tua medida [KM Total rodado] para que ele faca a soma dos KMs entre a MENOR datahora selecionada e a MAIOR datahora selecionada.

Tenta fazer algo assim, ajustando para o teu modelo:

Se essa resposta te ajudou, não se esqueça de marcar como melhor solução 😉

Abs!

Boa tarde João!!

Agradecido pelo feedback e também pelas parabenizações! Busco sempre me especializar e fazer o melhor que consigo!

Desculpe a demora, estou participando de um evento voltado ao setor logístico e estou fora! Na quinta-feira irei voltar e dar continuidade desse projeto! 

Vendo o que você passou, faz todo sentido, penso que isso vai resolver com 100% de certeza! Lhe retorno assim que possível!

Agradecido desde já João!

Grande abraço!

 

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Alex Rampanelli
tudo bem?

Perdão a intromissão na pauta do assunto. A sua tabela é originária de um ERP mesmo? A pergunta é porque vi que existe valores para latitude e longitude na mesma, achei bem interessante, o que permite uma visualização geográfica que fica muito bacana.

Parabéns pelo projeto

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...