Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom Dia.!
Pessoal, estou em um cliente e tenho passado por dificuldades em desenvolver um relatório com os saldos de estoque pela maneira que as informações estão sendo extraídas e carregadas no QLIKVIEW.
Tentei montar um exemplo bem simples da tabela principal (Mov) e os relatórios que eu preciso montar.
Preciso trazer a última movimentação, pois é ela que me dá o saldo atual do estoque, mas não estou conseguindo.
Segue em anexo o qvw e a tabela em Excel.
Os relatórios que eu preciso montar estão na segunda aba e exemplo abaixo.
Se alguém puder me ajudar, desde já muito obrigado.
Renato
Renato, tente trabalhar com a função FirstSortedValue, ela vai te ajudar bastante na resolução desses problemas, por exemplo no relatório "SALDO DIÁRIO POR DEPOSITO", monte um gráfico:
Dimensões: DATA, DEPOSITO, CODIGO e PRODUTO
Expressão: AVG(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO))
para maiores detalhes da função, segue o trecho do manual:
firstsortedvalue ( [ distinct ] expressão [, relevância de classificação
[, n ]] )
retorna o primeiro valor da expressão classificado pela relevância
de classificação correspondente, onde expressão apresenta iterações
em vários registros, conforme definido por uma cláusula group by.
A relevância de classificação retornará um valor numérico em que o
valor mais baixo fará com que o valor correspondente da expressão
seja classificado primeiro. Se a expressão valor de classificação for
precedida por um sinal de menos, a função retornará o último valor.
Se mais de um valor de expressão compartilharem a mesma ordem
de classificação mais baixa, a função retornará o valor nulo. Ao
declarar um valor de n maior que 1, você obterá a enésima posição
na classificação. Se a palavra distinct aparecer antes da expressão,
todas as duplicatas serão ignoradas.
Renato, tente trabalhar com a função FirstSortedValue, ela vai te ajudar bastante na resolução desses problemas, por exemplo no relatório "SALDO DIÁRIO POR DEPOSITO", monte um gráfico:
Dimensões: DATA, DEPOSITO, CODIGO e PRODUTO
Expressão: AVG(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO))
para maiores detalhes da função, segue o trecho do manual:
firstsortedvalue ( [ distinct ] expressão [, relevância de classificação
[, n ]] )
retorna o primeiro valor da expressão classificado pela relevância
de classificação correspondente, onde expressão apresenta iterações
em vários registros, conforme definido por uma cláusula group by.
A relevância de classificação retornará um valor numérico em que o
valor mais baixo fará com que o valor correspondente da expressão
seja classificado primeiro. Se a expressão valor de classificação for
precedida por um sinal de menos, a função retornará o último valor.
Se mais de um valor de expressão compartilharem a mesma ordem
de classificação mais baixa, a função retornará o valor nulo. Ao
declarar um valor de n maior que 1, você obterá a enésima posição
na classificação. Se a palavra distinct aparecer antes da expressão,
todas as duplicatas serão ignoradas.
Olá Yuri.
Tudo Jóia?
Em primeiro lugar, muito obrigado pelas dicas.
Para o primeiro relatório, funcionou..hehehehehe
Estou mexendo e estudando agora a forma de fazer para os outros, mas ainda esta meio confuso pra mim.
Eu consigo colocar essa função na carga?
Tentei, mas esta dando erro.
Pode ser que não seja possível.
LOAD DATA,
DEPOSITO,
CODIGO,
PRODUTO,
[SALDO INICIAL],
[E/S],
SEQ,
MOVIMENTO,
[SALDO FINAL],
SUM(AGGR(FirstSortedValue([SALDO FINAL],-SEQ), DATA,DEPOSITO,PRODUTO)) AS TESTE
FROM
(ooxml, embedded labels, table is Mov);
Na carga você consegue usar o FirstSortedValue, mas não consegue o AGGR.
Lembre-se que no script, toda sumarização deve ser precedida de um group by (que vai fazer o papel do AGGR), segue um exemplo:
LOAD
DATA,
DEPOSITO,
CODIGO,
PRODUTO,
SUM(FirstSortedValue([SALDO FINAL],-SEQ)) AS TESTE
FROM
(ooxml, embedded labels, table is Mov)
GROUP BY
DATA,
DEPOSITO,
CODIGO,
PRODUTO;
OK.! Yuri
Muito Obrigado pela ajuda e dicas.!
Renato
Olá Yuri
Tudo Jóia?
Surgiu uma dúvida neste momento.
Quando o saldo é igual a 0 ele não retorna nada para o registro em questão.
Neste caso eu fico sem saber quais os dias que o estoque estava com o saldo zerado.
Tem como arrumar isso na fórmula para trazer inclusive estes casos ?
Segue exemplo em anexo onde eu zerei o estoque no dia 3.
Muito Obrigado.
Renato