Ir para conteúdo
  • 0

Linguagem DAX


ALEXANDRE LEITE
Ir para solução Solucionado por Weverton Todeschini ,

Pergunta

  • Membros

Senhores,

Preciso criar uma medida para retornar o status do pedido considerando duas condições:

A coluna DT_ENTREGA_REAL da tabela ITEMPCM precisa ser igual a vazio; "Isso indica que o pedido ainda não chegou";

A coluna DT_EMISSAO da tabela ITEMPCM precisa ser a data mais recente. "pega apenas o último pedido";

Deve-se considerar que pode haver mais de um pedido do mesmo item com a DT_ENTREGA_REAL vazia.

image.png.89c434c336794041c7fc172dca04c86e.png

 

Estoque.pbix

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução

Pelo que entendi então seria isso.

Usando esse item como exemplo:
o status que deve retornar para você é o status "L" pois o pedido 2750 possui a DT_EMISSAO(4/7/22) mais recente para este item "RECARGA.P20" e a DT_ENTREGA_REAL está vazia

Fonte:Exemplo
image.png.20781142cdf2cba5e0e2e6a6bfd9363d.png


Medida para status:

STATUS_PED = 
CALCULATE (
    SELECTEDVALUE(ITEMPCM[STATUS_PEDIDOCM]),
    FILTER (
        ITEMPCM,
        ITEMPCM[DT_ENTREGA_REAL] = BLANK ()
            && MAX(ITEMPCM[DT_EMISSAO]) = 
             CALCULATE (
                MAX ( ITEMPCM[DT_EMISSAO] ),
                ALLEXCEPT ( ITEMPCM, ITEMPCM[ITEM] )
            )
    )
)

Resultado:

image.png.490e7577f34131f86bf41858a1ff9d27.png



Outro exemplo: Produto FRETE.SERV
image.png.d1211698d94ddc34ee9e71728ea869c2.png
image.png.bcdbf54b520e2e549431100e924b8d93.png

Consegue confirmar se é este o cenário e o resultado desejado mesmo? se tiver dado certo, avise aqui por gentileza. e marque este resposta como solucionada por gentileza. Obrigado. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Boa tarde @ALEXANDRE LEITE
Tente usar este código na sua medida pedido.

PEDIDO =
CALCULATE (
    SUMX ( ITEMPCM, ITEMPCM[QTDE_SOLICITADA] ) * 1,
    FILTER (
        ITEMPCM,
        ITEMPCM[DT_ENTREGA_REAL] <> BLANK ()
            && CALCULATE (
                MAX ( ITEMPCM[DT_EMISSAO] ),
                ALLEXCEPT ( ITEMPCM, ITEMPCM[NRO_PEDIDOCM] )
            )
    )
)

Observei que na matriz  a EST_AT é uma soma implícita da ITEM. 
removendo ela a matriz é filtrada com a regra que explicou, para funcionar, pode aplicar o mesmo filtro criando uma medida Explicita para a EST_AT  também. ou criar uma coluna calculada e filtrar no visual. 

Avise se der certo, ou se não der, para testar aqui novamente. Abraços
 

Editado por Weverton Todeschini
correção ortográfica
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

@Weverton Todeschini lendo agora a dúvida que postei, ficou meio confuso, na verdade eu quero trazer o status do pedido que esta na coluna STATUS_PEDIDOCM,

considerando as mesma condições.

A coluna DT_EMISSAO da tabela ITEMPCM precisa ser a data mais recente. "pega apenas o último pedido";

Deve-se considerar que pode haver mais de um pedido do mesmo item com a DT_ENTREGA_REAL vazia.

A solução que você prepôs também foi bacana para trazer a quantidade do pedido.

somente alterei o argumento "ITEMPCM[DT_ENTREGA_REAL] <> BLANK ()" para ITEMPCM[DT_ENTREGA_REAL] = BLANK ()

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
1 hora atrás, ALEXANDRE LEITE disse:

"pega apenas o último pedido";

Não estou entendendo o parâmetro que é considerado o ultimo pedido. neste exemplo:

o pedido 2763 na outra lógica peguei a data mais recente deste pedido. mais pelo que observei aqui a data de emissão é sempre igual e o status também. 

Tem o exemplo de um pedido que podemos usar ?
image.png.46f673906ce5f042e75941e4bc0fc711.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Esse pedido contém vários intens por isso a data é a mesma, no caso um item desse pedido pode está em outro pedido que já foi recebido ou ainda está o pendente.

Eu preciso que traga o status do  item considerando a data mais recente.

Infelizmente não consigo acessar a base agora.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...