Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
claudemir_dioto
Contributor III
Contributor III

Expressão com três alternativas

Olá Pessoal, bom dia.

Estou com uma situação aqui que não estou conseguindo resolver sozinho e preciso da ajuda de vocês.

Tenho uma tabela conforme abaixo em que necessito verificar se as totalidades de  quantidades de itens já foram transferidas para os devidos locais de projeto. Porém, na expressão, coloco duas alternativas conforme abaixo:

OPDescrição Item OPCódigoDescriçãoQtd. Nec.Estq. Proj.Estq. TotalSaldo Proj.TransferidoExpressão do campo "Transferido"
4761207
CONJUNTO DO PRENSADOR
2.14.19.15066
ARRUELA8050N
4761208CONJUNTO DO PRENSADOR
2.14.19.15066
ARRUELA8553S=IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N')
4761209CONJUNTO DO PRENSADOR
2.14.19.15066
ARRUELA8050N
4762649CONJUNTO DO PRENSADOR
2.14.19.15066
ARRUELA8050N

O que necessitava é que nesse caso, não ficasse como "S" de transferido, pois ainda existe saldo. Ou seja, tenho uma transferencia realizada, porém de forma PARCIAL. Teria que ter uma outra alterativa que ficasse por exemplo como "P" de PARCIAL. Já tentei colocar mais essa alternativa como mais um "IF" mas sem êxito.

Espero que tenha conseguido externar minha situação.

Desde já agradeço.

Att.

Claudemir

Labels (2)
6 Replies
elvis_schwarz
Creator
Creator

Bom dia Claudemir

Pelo o que entendi você precisa disso:

If(Transferido = 'S',

     If([Qtd.. Nec.]<[Est. Total],'P','S')

     ,'N')

claudemir_dioto
Contributor III
Contributor III
Author

Olá Elvis, Obrigado pelo retorno.

Não funciona dessa forma pois utilizo esse status de transferido no inicio do script conforme abaixo:

Load *, 

    IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N') as [Flag Verificador];

Depois, eu fiz um botão para filtrar todos os registros com  [Flag Verificador] = N.


claudemir_dioto
Contributor III
Contributor III
Author

Olá pessoal!

Alguém poderia me ajudar?

Ainda não consegui resolver a situação.

Obrigado.

elvis_schwarz
Creator
Creator

Bom dia

Você pode chamar a tabela novamente para aplicar a a função e unificar com um concatenate ou join, por exemplo:

Tabela1:

Load *,

     Id,

    IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N') as [Flag Verificador]

From [seu qvd];

Join (Tabela1)

LOAD

     Id,

     If(Transferido = 'S',

     If([Qtd.. Nec.]<[Est. Total],'P','S')

          ,'N') AS [Nome do campo]

Resident Tabela1;

Anonymous
Not applicable

@Claudemir

Veja se é este o resultado que você espera:

Anonymous
Not applicable

Se sim,

Eu utilizei a seguinte expressão:

=if([Estq. Proj.]=0 and [Saldo Proj.] = 0,'N',

          if ([Saldo Proj.]> 0, 'P','T'))