Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
samuel_rodrigue
Contributor III
Contributor III

Dúvida com Regra com subtotal

Bom dia,

Tenho os seguintes dados:

Preciso criar uma regra que some as quantidades apenas de almoxarifados específicos e depois uma coluna para validar se existe estoque disponível ou não; por exemplo só posso movimentar estoque nos almox A e B, e eu preciso que a coluna disponibilidade calcule o subtotal das quantidades por código.

     

CODIGONECESSIDADEQUANTIDADEALMOXDISPON
1111200100ADisponivel
1111200300BDisponivel
2222500500CIndisponivel
22225000AIndisponível
33331000       Indisponível
4444200

100

AParcial
444420050BParcial

Tentei o segundo IF para criar uma dimensão mestre, porém sem sucesso:

=IF(sum(TOTAL <CODIGO>  [QTD_DISPONIVEL_INVS]) >= [NECESSIDADE], 'NÃO Disponível' , 

    if(sum(TOAL <CODIGO>  [QTD_DISPONIVEL_INVS]) >0, 'Parcial', 'indisponível'))

Labels (6)
1 Solution

Accepted Solutions
Thiago_Justen_
MVP
MVP

Samuel,

Altere as tabelas edit2 e [TABELA FINAL] para:

[edit2]:

Load

     [CODIGO],

    SUM([NECESSIDADE]) AS [SOMA_NECESSIDADE]

RESIDENT [Edit]

Group by [CODIGO];

[TABELA FINAL]:

Load

    CODIGO,

    [DESCRICAO],

    NECESSIDADE,

     [DATA_NECESSIDADE],

    [Kanban],

    [DT_RECEBIMENTO],

    [SUBINVENTORY_CODE],

    [QTD_DISPONIVEL],

     [LOT_NUMBER],

    [PLANNER_CODE],

    [ENDERECO],

    [class. INV],

    IF(QTD_DISPONIVEL >= SOMA_NECESSIDADE AND MATCH(SUBINVENTORY_CODE,'CD-PA-REV','CD-PICKING','AC-INSP','CD-REC','EMBALAGEM','EXPEDICAO'),

    'DISPONÍVEL',

        IF(QTD_DISPONIVEL > 0 AND QTD_DISPONIVEL < SOMA_NECESSIDADE, 'PARCIAL', 'INDISPONÍVEL')

    ) AS DISPONIBILIDADE

Resident Edit;

Drop table [Edit];

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

12 Replies
Thiago_Justen_
MVP
MVP

Samuel,

Se entendi bem a sua necessidade, permita-me sugerir algo:

Expressão para a coluna "DISPON"

If( Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) >= Sum(Aggr(Sum([NECESSIDADE]),CODIGO))

     and Match(ALMOX,'A','B'), 'Disponível',

          If( Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) > 0 and                     Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) < Sum(Aggr(Sum([NECESSIDADE]),CODIGO)) ,

                    'Parcial'

             ),

     'Indisponível'

)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
samuel_rodrigue
Contributor III
Contributor III
Author

Thiago,

Obrigado pela ajuda, porém não consigo utilizar a expressão. Está reportando o seguinte erro:
"Error in exression: If takes 2-3 parameters"

Thiago_Justen_
MVP
MVP

Falha minha:

If( Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) >= Sum(Aggr(Sum([NECESSIDADE]),CODIGO))

     and Match(ALMOX,'A','B'), 'Disponível',

          If( Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) > 0 and                     Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) < Sum(Aggr(Sum([NECESSIDADE]),CODIGO)) ,

                    'Parcial',

            'Indisponível')

)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
samuel_rodrigue
Contributor III
Contributor III
Author

Eu entendi o sentido da expressão, eu consegui criá-la sem erro, porém a tabela não é gerada,

por reportar: "Dimensão Inválida". Estranho.

Thiago_Justen_
MVP
MVP

Quer mandar um qvf para eu testar outras soluções?

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
samuel_rodrigue
Contributor III
Contributor III
Author

Não consegui colocar aqui segue link do drive:
Movimentações Insumos.qvf - Google Drive

Thiago_Justen_
MVP
MVP

Essa expressão funciona como "Medida" apenas, não como dimensão calculada:

If(Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) >= Sum(Aggr(Sum([NECESSIDADE]),CODIGO))

     and Match(SUBINVENTORY_CODE,'CD-PA-REV','CD-PICKING','AC-INSP','CD-REC','EMBALAGEM','EXPEDICAO'), 'Disponível',

          If(Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) > 0 and Sum(Aggr(Sum([QTD_DISPONIVEL_INVS]),CODIGO)) < Sum(Aggr(Sum([NECESSIDADE]),CODIGO)) ,

                    'Parcial',

            'Indisponível')

)

Mas pode criar um campo DISPONIBILIDADE direto no script:

SUA_TABELA_TEMP:

LOAD

CODIGO,

    SUBINVENTORY_CODE,

    NECESSIDADE,

    QTD_DISPONIVEL_INVS,

    OUTROS_CAMPOS

FROM SUA_BASE;

//FAZ UM SUM AGRUPADO POR CODIGO PRA USAR DEPOIS...

LEFT JOIN (SUA_TABELA_TEMP)

LOAD

CODIGO,

    Sum([QTD_DISPONIVEL_INVS]) as [SOMA_QTD_DISPONIVEL_INVS],

Sum([NECESSIDADE])    as [SOMA_NECESSIDADE]

RESIDENT SUA_TABELA_TEMP GROUP BY CODIGO;

SUA_TABELA_FINAL:

LOAD

CODIGO,

    SUBINVENTORY_CODE,

    NECESSIDADE,

    QTD_DISPONIVEL_INVS,

    OUTROS_CAMPOS,

IF(SOMA_QTD_DISPONIVEL_INVS >= SOMA_NECESSIDADE AND MATCH(SUBINVENTORY_CODE,'CD-PA-REV','CD-PICKING','AC-INSP','CD-REC','EMBALAGEM','EXPEDICAO'),

    'DISPONÍVEL',

        IF(SOMA_QTD_DISPONIVEL_INVS > 0 AND SOMA_QTD_DISPONIVEL_INVS < SOMA_NECESSIDADE, 'PARCIAL', 'INDISPONÍVEL')

    ) AS DISPONIBILIDADE

RESIDENT SUA_TABELA_TEMP;

DROP TABLE SUA_TABELA_TEMP;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
samuel_rodrigue
Contributor III
Contributor III
Author

Thiago,

Infelizmente não funcionou, ele ainda está olhando por linha:
Capturar.PNG
Segue QVF: Movimentações Insumos.qvf - Google Drive

Thiago_Justen_
MVP
MVP

Samuel,

Altere as tabelas edit2 e [TABELA FINAL] para:

[edit2]:

Load

     [CODIGO],

    SUM([NECESSIDADE]) AS [SOMA_NECESSIDADE]

RESIDENT [Edit]

Group by [CODIGO];

[TABELA FINAL]:

Load

    CODIGO,

    [DESCRICAO],

    NECESSIDADE,

     [DATA_NECESSIDADE],

    [Kanban],

    [DT_RECEBIMENTO],

    [SUBINVENTORY_CODE],

    [QTD_DISPONIVEL],

     [LOT_NUMBER],

    [PLANNER_CODE],

    [ENDERECO],

    [class. INV],

    IF(QTD_DISPONIVEL >= SOMA_NECESSIDADE AND MATCH(SUBINVENTORY_CODE,'CD-PA-REV','CD-PICKING','AC-INSP','CD-REC','EMBALAGEM','EXPEDICAO'),

    'DISPONÍVEL',

        IF(QTD_DISPONIVEL > 0 AND QTD_DISPONIVEL < SOMA_NECESSIDADE, 'PARCIAL', 'INDISPONÍVEL')

    ) AS DISPONIBILIDADE

Resident Edit;

Drop table [Edit];

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago