Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Segue o print da minha tela onde estou fazendo a edição.
Tenta assim:
sum({< ( funcao.COD_FUNCAO -= {9} , classdespesa.CD_CLASSDESPESA -= {"4.4.90.51","4.4.90.52"} recfindespesa.VALORPREV)
+ ...
LC
dessculpa é "=-" e não "-="
LC
Marcos,
esta sugestão resolveu o problema?
LC
continua dando o erro no =- . Tentei das duas maneiras.
Bom dia Marcos.
Tens como postar um QVW exemplo com dados fake para ficar mais fácil acharmos a solução do problema?
Segue o qvw.
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)
)
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
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.