Ir para conteúdo
  • 0

Linguagem DAX


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

Pergunta

  • Alunos

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
  • Alunos
  • 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
  • Alunos

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
  • Alunos

@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
  • Alunos
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

Faça login para comentar

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



Entrar Agora
×
×
  • Criar Novo...