Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Função ALL

Srs. Bom dia.

Sou novo no Qlikview e estou com uma função que esta me fazendo quebrar a cabeça. Preciso trazer os valores de VALORPREV que estão na FUNÇÃO = 9 somados aos valores das funções menores do que 9 que tem CLASSDESPESA = '4.4.90.51' E CLASSDESPESA = '4.4.90.512. Esse CLASSDESPESA é uma classificação existente dentro da FUNÇÃO. No script abaixo consigo fazer isso usando a função All, porém foi necessário mudar a consulta e agora preciso selecionar outras informações e essa função não se aplica mais. Segue o script.

if(funcao.COD_FUNCAO = 9, sum(ALL if((classdespesa.CD_CLASSDESPESA = '4.4.90.51' or classdespesa.CD_CLASSDESPESA = '4.4.90.52')or funcao.COD_FUNCAO = 9, recfindespesa.VALORPREV)), 

  if(funcao.COD_FUNCAO < 9, sum(if((classdespesa.CD_CLASSDESPESA = '3.1.90.11' or

  classdespesa.CD_CLASSDESPESA = '3.1.90.13' or

  classdespesa.CD_CLASSDESPESA = '3.1.90.16' or

  classdespesa.CD_CLASSDESPESA = '3.3.50.41.03' or

  classdespesa.CD_CLASSDESPESA = '3.3.90.30' or

  classdespesa.CD_CLASSDESPESA = '3.3.90.36' or

  classdespesa.CD_CLASSDESPESA = '3.3.90.39' or

  classdespesa.CD_CLASSDESPESA = '4.5.90.61'), recfindespesa.VALORPREV)), Sum(recfindespesa.VALORPREV)))

Alguém tem alguma ideia?

Desde já obrigado.

26 Replies
Anonymous
Not applicable
Author

Segue o print da minha tela onde estou fazendo a edição.

Not applicable
Author

Tenta assim:


sum({< ( funcao.COD_FUNCAO -= {9} , classdespesa.CD_CLASSDESPESA -= {"4.4.90.51","4.4.90.52"} recfindespesa.VALORPREV)

+ ...

LC

Not applicable
Author

dessculpa é "=-" e não  "-="

LC

Not applicable
Author

Marcos,

esta sugestão resolveu o problema?

LC

Anonymous
Not applicable
Author

continua dando o erro no =- . Tentei das duas maneiras.

rphpacheco
Creator III
Creator III

Bom dia Marcos.

Tens como postar um QVW exemplo com dados fake para ficar mais fácil acharmos a solução do problema?

Anonymous
Not applicable
Author

Segue o qvw.

cesarc2sistemas
Contributor III
Contributor III

Bom dia

Por favor tente a expressão abaixo, pelo qvw que você mandou acho que é isso.

Ainda assim, olhando melhor acho que na sua expressão original o que estava errado era o "encadeamento" dos if.

Qual a ideia, quando a função for 9 vai ler os registro da função 9 desconsiderando as duas contas e vai somar com o total das duas contas sem levar em conta a função (inclusive a 9)

Para as outras funções (<> 9), vai somar tudo exceto as duas contas que só devem ser somadas na função 9.

Espero que seja isso, aqui funcionou

Até mais

if (funcao.COD_FUNCAO = '9',

    sum({$< classdespesa.CD_CLASSDESPESA = {"*"} -{"4.4.90.51","4.4.90.52"} > } recfindespesa.VALORPREV)

    +

    sum({$< classdespesa.CD_CLASSDESPESA = {"4.4.90.51","4.4.90.52"} > } total recfindespesa.VALORPREV),

    sum({$<classdespesa.CD_CLASSDESPESA = {"*"} -{"4.4.90.51","4.4.90.52"}> } recfindespesa.VALORPREV)

)

rphpacheco
Creator III
Creator III

Dá uma olhada nisso Marcos.

Utilize a seguinte expressão:

Sum({<FUNÇÃO={'9'}>} VALORPREV) + Sum({<FUNÇÃO={'<9'}, CLASSDESPESA={'4.4.90.51','4.4.90.512'}>} VALORPREV)

Segue Também QVD Exemplo.

Lembrando que não estou utilizando '$' ou All ou Total, pois não sei sua real necessidade. Mas caso você necessite dentro do seu projeto, explico novamente a função destas cláusulas:

'$' e '1' quando usados em um set analysis significam '$' Contexto atual das seleções e '1' Contexto Total do Data Cloud.

Existe tmbm '$_1' Que é o contexto das seleções anteriores onde o número irá representar a nível do contexto anterior.

Já o All e o Total segue a mesma explicação que fiz no início do post

Anonymous
Not applicable
Author

Bom dia Cesar.

Não sei se expliquei direito no inicio do post, então vou tentar novamente.

Preciso que a função faça o seguinte: quando não tiver nenhuma seleção, ele vai ler todos os registros e dar o total. Quando estiver selecionado a função 9, ele vai somar todos os registros da 9 mais as contas "4.4.90.51" e "4.4.90.52" das outras contas. Quando houver qualquer outra seleção, ele vai somar tudo menos o que houver nessas contas. Desculpe se não expliquei isso direito no inicio do post. Com relação ao script, tentei aqui e dentro da ideia que vc pensou deu certinho aqui tb.

Obrigado.