Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
Tentei de várias maneiras e não consegui, então recorro aos mestres da comunidade. No Qlik Sense, como posso fazer para desconsiderar os dados quando seguem o critério abaixo:
Se nas linhas exibidas, for o mesmo valor nas colunas "Cod Produto" e "OP", e que a diferença entre a coluna "Qtde Empenho" e "Estrutura(com Perda)" seja o mesmo valor, não deve aparecer (eles se anulam).
Por exemplo, na imagem abaixo, ambas as linhas não poderia aparecer.
Cod Produto = "TDCAT0070B"
OP = '20830801001"
Diferenças entre as 2 medidas citadas = 1507,50
Agradeço desde já.
Olá, uma possibilidade é fazer via script.
Veja um exemplo.
TodosDados:
Load * Inline [
CodProdudo, OP, Qtde Empenho, Estrutura(com Perda)
12345, OS-1234, 1500,0
12345, OS-1234, 0, 1500
23456, OS-2345, 1000,0
34567, OS-3456, 0,500
];
TMPDadosFlag:
NoConcatenate
Load
CodProdudo,
OP,
[Qtde Empenho],
[Estrutura(com Perda)],
If(CodProdudo=Previous(CodProdudo) and
OP = Previous(OP) and
[Qtde Empenho]=Previous([Estrutura(com Perda)]),1,0) AS Flg_Anular
Resident TodosDados
Order by
CodProdudo,
OP;
Drop Table TodosDados;
DadosFlag:
NoConcatenate
Load
CodProdudo,
OP,
[Qtde Empenho],
[Estrutura(com Perda)],
If(CodProdudo=Previous(CodProdudo) and
OP = Previous(OP) and
[Qtde Empenho]=Previous([Estrutura(com Perda)]) and
Peek(Flg_Anular)=1,Peek(Flg_Anular),Flg_Anular) AS Flg_Anular
Resident TMPDadosFlag
Order by
CodProdudo,
OP,
Flg_Anular desc;
Drop Table TMPDadosFlag;
Dados:
NoConcatenate
Load
CodProdudo,
OP,
[Qtde Empenho],
[Estrutura(com Perda)],
Flg_Anular
Resident DadosFlag
Where Flg_Anular=0;
Drop Table DadosFlag;
Don't worry, be Qlik.
Tonial
Bom dia Fernando,
Obrigado pelo suporte. Tentei adaptar ao meu script, porém ao dar carga aparece o erro de que a coluna não foi encontrada. Não percebi problema no código. Como não trabalhei ainda com "noconcatenate" e "resident table", pode ser que eu esteja fazendo algo errado mesmo...Segue script:
RealStandardEmpenhos:
Load
//DATE(EMISSAO)&'|'&null()&'|'&RTRIM(FILIAL)&'|'&null()
// AS ChaveGeral,
FILIAL AS FilialRealStandard,
OP AS OPCompletaRealStandard,
EMISSAO AS EmissaoRealStandard,
FIM AS DataFimRealStandard ,
QT AS QuantidadeRealStandard,
QUJE AS QuantidadeProduzidaRealStandard,
PRODUTO AS CodProdutoRealStandard,
DESC_PRO AS DescProdutoRealStandard,
UM_PRO AS UMProdutoRealStandard,
COMP AS CodComponenteRealStandard,
DESC_COMP AS DescComponenteRealStandard,
UM_COMP AS UMComponenteRealStandard,
VALIDA AS ValidaRealStandard,
QT_SG1 AS QuantidadeEstruturaRealStandard,
QT_SD4 AS QuantidadeEmpenhoRealStandard,
DIF_SD4 AS DiferencaEmpenhoEstruturaRealStandard,
QUJE_SG1 AS QuantidadeProduzidaEstruturaRealStandard,
QUJE_SD4 AS QuantidadeProduzidaEmpenhoRealStandard,
DIF_SD4JE AS DiferencaEmpenhoProduzidoRealStandard,
ATENCAO AS Status,
EstruturaComPerda AS EstruturaComPerdaRealStandard,
ATENCAO2 AS Status2,
EstruturaComPerda - QT_SD4 AS Diferenca
FROM [lib://RealStandardEmpenhosTeste_??2021.qvd] (qvd);
TMPDadosFlag:
NoConcatenate
Load
FilialRealStandard,
OPCompletaRealStandard,
EmissaoRealStandard,
DataFimRealStandard ,
QuantidadeRealStandard,
QuantidadeProduzidaRealStandard,
CodProdutoRealStandard,
DescProdutoRealStandard,
UMProdutoRealStandard,
CodComponenteRealStandard,
DescComponenteRealStandard,
UMComponenteRealStandard,
ValidaRealStandard,
QuantidadeEstruturaRealStandard,
QuantidadeEmpenhoRealStandard,
DiferencaEmpenhoEstruturaRealStandard,
QuantidadeProduzidaEstruturaRealStandard,
QuantidadeProduzidaEmpenhoRealStandard,
DiferencaEmpenhoProduzidoRealStandard,
Status,
EstruturaComPerdaRealStandard,
Status2,
Diferenca,
IF(PRODUTO=Previous(PRODUTO) and
OP = Previous(OP) and
QT_SD4=Previous(EstruturaComPerda),1,0) AS Flg_Anular
Resident RealStandardEmpenhos
Order by
PRODUTO,
OP;
Drop Table RealStandardEmpenhos;
Olá, o problema é que quando vc utiliza o resident, vc deve utilizar o nome das colunas da tabela anterior, nesse caso a tabela RealStandardEmpenhos, nesse seu exemplo, os campos PRODUTO, OP, QT_SD4 e EstruturaComPerda foram todos renomeados, onde devemos alterar para os novos nomes.
Com base no script que você disponibilizou, deveria ficar assim:
RealStandardEmpenhos:
Load
//DATE(EMISSAO)&'|'&null()&'|'&RTRIM(FILIAL)&'|'&null()
// AS ChaveGeral,
FILIAL AS FilialRealStandard,
OP AS OPCompletaRealStandard,
EMISSAO AS EmissaoRealStandard,
FIM AS DataFimRealStandard ,
QT AS QuantidadeRealStandard,
QUJE AS QuantidadeProduzidaRealStandard,
PRODUTO AS CodProdutoRealStandard,
DESC_PRO AS DescProdutoRealStandard,
UM_PRO AS UMProdutoRealStandard,
COMP AS CodComponenteRealStandard,
DESC_COMP AS DescComponenteRealStandard,
UM_COMP AS UMComponenteRealStandard,
VALIDA AS ValidaRealStandard,
QT_SG1 AS QuantidadeEstruturaRealStandard,
QT_SD4 AS QuantidadeEmpenhoRealStandard,
DIF_SD4 AS DiferencaEmpenhoEstruturaRealStandard,
QUJE_SG1 AS QuantidadeProduzidaEstruturaRealStandard,
QUJE_SD4 AS QuantidadeProduzidaEmpenhoRealStandard,
DIF_SD4JE AS DiferencaEmpenhoProduzidoRealStandard,
ATENCAO AS Status,
EstruturaComPerda AS EstruturaComPerdaRealStandard,
ATENCAO2 AS Status2,
EstruturaComPerda - QT_SD4 AS Diferenca
FROM [lib://RealStandardEmpenhosTeste_??2021.qvd] (qvd);
TMPDadosFlag:
NoConcatenate
Load
FilialRealStandard,
OPCompletaRealStandard,
EmissaoRealStandard,
DataFimRealStandard ,
QuantidadeRealStandard,
QuantidadeProduzidaRealStandard,
CodProdutoRealStandard,
DescProdutoRealStandard,
UMProdutoRealStandard,
CodComponenteRealStandard,
DescComponenteRealStandard,
UMComponenteRealStandard,
ValidaRealStandard,
QuantidadeEstruturaRealStandard,
QuantidadeEmpenhoRealStandard,
DiferencaEmpenhoEstruturaRealStandard,
QuantidadeProduzidaEstruturaRealStandard,
QuantidadeProduzidaEmpenhoRealStandard,
DiferencaEmpenhoProduzidoRealStandard,
Status,
EstruturaComPerdaRealStandard,
Status2,
Diferenca,
IF(CodProdutoRealStandard=Previous(CodProdutoRealStandard) and
OPCompletaRealStandard = Previous(OPCompletaRealStandard) and
QuantidadeEmpenhoRealStandard=Previous(EstruturaComPerdaRealStandard),1,0) AS Flg_Anular
Resident RealStandardEmpenhos
Order by
CodProdutoRealStandard,
OPCompletaRealStandard;
Drop Table RealStandardEmpenhos;
Don't worry, be Qlik.
Tonial.