Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Expressão no calculo da Dimensão

Olá, tenho uma expressão que com um IF simples

IF(count(UCID)>1,count(UCID),'')

Essa expressão se chama QTD e me retorna apenas os resultados que forem maiores que 1, caso não sejam me retornará um espaço vazio '', quero usa-la na minha dimensão em outro IF

=IF(QTD='','', [TELEFONE])

Onde se o resultado de QTD for vazio, me retorne vazio, caso contrário os dados em telefone, para assim poder usar a opção "Ocultar nulos" do Qlik.
Mas não estou conseguindo de forma alguma utilizar o Alias da expressão dentro da dimensão.
Desde já agradeço a ajuda.

Labels (3)
1 Solution

Accepted Solutions
Not applicable
Author

Consegui resolver, na minha expressão ao invés de retornar um espaço vazio quando for menor que 2, pedi que retorna-se '0':

IF(count(UCID)>1,count(UCID),'0')

E na guia Apresentação com a opção "Ocultar zeros" ele removeu todas as linhas que eram menores que 2.

View solution in original post

12 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, não entendi muito bem o cenário, posta uns prints para entendermos.

Essas expressões estão num visualizador Tabela Simples e estão definidas em Dimensão?

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Marcio_Campestrini
Specialist
Specialist

Boa tarde

Acredito que você não vai conseguir utilizar o rótulo da expressão na dimensão.

Eu sugiro criar esse indicador no script de carga e então utilizar na dimensão.

Márcio Rodrigo Campestrini
Not applicable
Author

marcio.campestrini‌ um rapaz aqui do trabalho me deu um script no qual ele usa o nome que deu a Expressão, dentro da dimensão calculada e funcionou pra ele

=If(SIM='X','',[SUBITEM (Como avaliar)])

SIM é a expressão dele, SUBITEM é do select (script de carga), estou tentando fazer o mesmo que ele, ele fez uma expressão com IF e usou na dimensão.

Marcio_Campestrini
Specialist
Specialist

Kaleb

Por gentileza, disponibilize um exemplo para avaliação.

Márcio Rodrigo Campestrini
Not applicable
Author

qtd.jpg

Seque a imagem

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, a solução mais produtiva que vejo, é controlar está questão no script como o nosso amigo marcio.campestrini‌ comentou, vai facilitar sua vida na manutenção e até mesmo quem for assumir o trabalho.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

exemplo.jpg

Segue Márcio

Not applicable
Author

Eu pensei nisso problema é que para obter tanto Telefone, quanto UCID, foi feito um código com charindex e substring, pois os mesmos estavam embaralhados dentro de um arquivo TXT, por exemplo para encontrar o Telefone:

CONVERT(VARCHAR(20),replace(substring(ori.uri,CHARINDEX('_',ori.uri)+3,9),'_',''))  as TELEFONE

E aqui UCID

RTRIM(LTRIM(SUBSTRING(ori.uri, pos.f + 1, pos.g - pos.f - 1)))  as UCID

Como eu faria um IF(count(UCID_VOICE)>1,count(UCID_VOICE),'') nesse UCID?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue exemplo:

Tab_Exemplo:

Load

    <Campo_Chave>,

    IF(count(

            Trim(SUBSTRING(ori.uri, pos.f + 1, pos.g - pos.f - 1))

            )>1

        ,count(

            Trim(SUBSTRING(ori.uri, pos.f + 1, pos.g - pos.f - 1))

            )

        ,''

      )

Group By <Domensão>

Residente <Tabela>;

Obs.: RTRIM() + LTRIM() = TRIM()

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti