Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord