Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Performance

Boa tarde

Estou desenvolvendo uma aplicação num cliente onde compreenderá todas as análises do Orçamento hoje realizadas via excel pelo QlikView. Porém estou na 5ª aba, uma das mais complexas, onde tenho 3 containers, cada um com aprox 15 relatórios dinámicos, com fórmulas parecidas com essa:

(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC))

/

(before(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)

+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC)))-1


Essa é apenas uma de aprox 4 cada relatório.

Quando salvo o qvw, ela não abre mais essa aba, fica pensando ...

Alguem pode dar uma sugestão de como melhorar a performance? Crio variáveis para todas as expressões??

16 Replies
rphpacheco
Creator III
Creator III

Exemplo, Quero agrupar esta soma a uma filial e data:

Tabela:

Load

     Filial,

     Data,

     Sum(If(UNIDADE <> Match(UNIDADE,'18','40','11','60','61','27','74','75'),

          If(ATIVO_SN = 'S',

            VL_GASTOS_ORC

          )

     )                                                    as [RECEITAS GERAIS]

From <Sua Base de Dados>

Group By

     Filial,

     Data;

Assim, a soma das Receitas Gerais serão agrupadas por filial e data

Not applicable
Author

Estou testando com conforme o pdf em anexo, mas está dando expressão inválida.. Acredito ter entendido algo errado..

rphpacheco
Creator III
Creator III

Não deu certo por que para todas as operações de agregação (Sum, Count, Max) em uma tabela do sistema é necessário realizar um group by.

Tente incluir no Group By da forma que te mostrei no exemplo anterior todos os campos carregados antes do Sum().

Lembre-se que os nomes destes campos devem ser os mesmo da base e não os aliases.

Se puderes postar um QVW exemplo fica melhor para resolver

Not applicable
Author

Segue abaixo..

Outra pergunta, e quando a expressão for utilizar dados de duas ou mais bases diferentes?

rphpacheco
Creator III
Creator III

Rodrigo.

Verifiquei um probleminha.

O teu segundo If() na expressão de soma não está realizando nenhuma condicional. Faça da mesma forma que o primeiro If(), onde ele verifica dentro de todas as unidades de negócio quais são diferentes de '18','60','61','74','75'.

Ou seja, tens que fazer com que haja uma comparação entre todos os GRP_ORCAMENTARIO e os que você destãcou no Match().

Faça isso e carregue para ver se dá certo.

Só não fiz isso e devolvi o QVW, por que não sei se o comparativo do GRP_ORCAMENTARIO tem que ser '=' ou '<>' dos valores que você incluiu.

Abraços!

Not applicable
Author

Tem que ser igual a aqueles .. ficaria assim?

IF(GRP_ORCAMENTARIO=Match(GRP_ORCAMENTARIO,'1','2','3','4','5','6','7','8','9','10','11')

dessa forma continuou com erro!

rphpacheco
Creator III
Creator III

Qual o erro que está apresentando?

Provavelmente o erro está no group by, pois ele deve ser igual a construção dos campos. Ou seja, se você utiliza um month(Data) para criar o mês, no group by vc terá que colocar tmbm a mesma expressão que contruiu o campo.

Tente fazer isso em seu script.