Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
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_

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_

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_

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_

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_

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_

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