Assuntos relacionados a criação de medidas, fórmulas e funções DAX, relacionamentos etc
Por felipegare
#64363
Boa tarde, pessoal. Tudo bem?

Estou trabalhando em um novo projeto junto com o time de hardware e eles pediram alguns alertas para mim. Um deles é para notificar quando o dispositivo está offline

Para isso, eu preciso comparar a última data/horário que o dispositivo enviou mensagem com a data/horário atual

Para uma melhor compreensão, tenho um código em javascript aqui que pode ajudar:

VAR status = "-"
IF (lastUpdateMinutes <= 25){
status = "online"
}else if(lastUpdateMinutes > 25 && lastUpdateMinutes <= 60){
status = "atrasado"
}else if(lastUpdateMinutes > 60 && lastUpdateMinutes < 240){
status = "super atrasado"
}else if(lastUpdateMinutes > 241){
status = "offline"
}


Gostaria de saber se há alguma maneira de fazer isso em DAX (ou em M, se necessário).

Muito obrigado desde já.

Att,

Felipe Garé.
Por babdallas
#64364
Considerando que lastUpdateMinutes já seja uma medida calculada, você poderia fazer assim:
Código: Selecionar todos
_Status = 
SWITCH(
        TRUE(),
         [lastUpdateMinutes]>241)
         "offline",
         [lastUpdateMinutes]>60,
         "super atrasado",
         [lastUpdateMinutes] > 25 ,
         "atrasado",
         "online"
)
felipegare agradeceu por isso
Por felipegare
#64370
Muito obrigado! Já ajudou bastante

Porém, LastUpdateMinutes não é uma medida calculada, é uma coluna de uma tabela.

Teria como fazer utilizando essa coluna dessa forma?

Se necessário, tenho o código em SQL tbm

select CASE
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) < 25 THEN 'ONLINE'
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) BETWEEN 26 AND 60 THEN 'ATRASADO'
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) BETWEEN 61 AND 240 THEN 'SUPER ATRASADO'
ELSE 'OFFLINE'
END as DelaiedMinutes ,
max(UpdateTime) as LastMessage,
FixedAsset
from <nome do banco>
group by FixedAsset
order by 2 ASC
Por babdallas
#64372
Seria mais fácil você anexar um modelo fictício e dizer qual o resultado esperado.
Por felipegare
#64377
babdallas escreveu: 04 Mai 2021 às 15:20 Considerando que lastUpdateMinutes já seja uma medida calculada, você poderia fazer assim:
Código: Selecionar todos
_Status = 
SWITCH(
        TRUE(),
         [lastUpdateMinutes]>241)
         "offline",
         [lastUpdateMinutes]>60,
         "super atrasado",
         [lastUpdateMinutes] > 25 ,
         "atrasado",
         "online"
)
Teria como eu fazer isso se a "LastUpdateMinutes" não for uma medida? LastUpdateMinutes é uma coluna.

Também resolveria se tiver como transformá-la em uma medida para que eu possa usar a função
Por babdallas
#64385
Não entendi muito bem. Você quer fazer uma nova coluna ou uma medida? Anexa um pequeno modelo fictítio para ajudar no entendimento e diga o resultado esperado, por favor.

Na figura 1 é a aparência quando abro[…]

Cara, nem sei como agradecer. Showww, resolveu per[…]

repetição entre jogos

Poderia dar alguns exemplo de resultado esperado s[…]

Mudar o mês na fórmula

Anexa um exemplo, por favor.

Não seria só desabilitar a opç[…]

Ajuda Para Calculo com horario.

Bom dia/tarde/noite Pessoal preciso de uma ajuda[…]

Agradeço muito pela dica, mas acredito que […]

Retornar nome do computador na rede

achei a mesma pergunta neste forum , com resposta,[…]