Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal é possível fazer uma consulta no set analisys em forma de subconsulta? Eu preciso contar todos os registros de uma tabela que o nome (CI) esteja presente em outra tabela. Seria esse SQL que eu estou tentando transformar em set analysis sem sucesso até então.
select CI from SLOAVAIL1M1
where CI in (
select LOGICAL_NAME from DEVICE2M1
where TYPE = 'bizservice'
and CGU_MONITORACAO is null or CGU_MONITORACAO = 0
)
Ou alguma outra forma para resolver isso.
Obrigado
João, se fizer na carga ?
Tmp:
LOAD
LOGICAL_NAME as CI ;
select LOGICAL_NAME from DEVICE2M1
where TYPE = 'bizservice' and CGU_MONITORACAO is null or CGU_MONITORACAO = 0;
//
//
//
Tabela:
LOAD
CI
Where Exists(CI);
select CI from SLOAVAIL1M1;
O Where Exists(CI) do segundo LOAD somente vai quando já tiver (ou seja, existe) na memoria lido pelo LOAD da tabela Tmp.
Assim, uma expressão simples (count por exemplo) vai funcionar.
Mas, pode ser que não lhe atenda pois não sei direito o que você precisa......
Boa tarde,
Se você carregar corretamente os campos no qlikview e estabelecer relações de modo correto, tem como sim, ficaria mais ou menos assim:
NULLCOUNT({<TYPE={'bizservice'}>} CI)
+
COUNT({<TYPE={'bizservice'}>, <CGU_MONITORACAO={0}>} CI)
Contagem de Nulos e de Zeros.
Espero que tenha sido útil.
Att,
Tiago Cardoso
Acredito também que se você utilizar esse SQL para formar apenas 1 campo, ele já sairia com o valor que você precisa, não sendo necessária a utilização de expressões, mas daí seria um campo em uma tabela flutuante, porém teria o valor que você precisa.
Bom, tudo depende para qual fim você vai utilizar futuramente também.
Abraços.
Pensando bem, você quer apenas os registros contidos na tabela DEVICE2M1 né!?
Quando carregar esta tabela [DEVICE2M1] no script de carga, faça o seguinte:
-Crie um campo só para identificar o nome da tabela;
DEVICE2M1:
LOAD
...,
...,
'DEVICE2M1' as NomeTabela
FROM [...]
-Pode fazer isto em outras tabelas, caso precise buscar uma informação acerca daquela tabela apenas.
Aí sim podemos atribuir isto em nossa expressão SET! ...
Ficaria assim:
NULLCOUNT({<TYPE={'bizservice'}>,<NomeTabela='DEVICE2M1'>} CI)
+
COUNT({<TYPE={'bizservice'}>, <CGU_MONITORACAO={0}>, <NomeTabela='DEVICE2M1'>} CI)
Acredito que agora resolveria seu problema. perdão postar tantas vezes, não havia interpretado seu problema de maneira correta na primeira vez em que li.
Att,
Tiago Cardoso
João, se fizer na carga ?
Tmp:
LOAD
LOGICAL_NAME as CI ;
select LOGICAL_NAME from DEVICE2M1
where TYPE = 'bizservice' and CGU_MONITORACAO is null or CGU_MONITORACAO = 0;
//
//
//
Tabela:
LOAD
CI
Where Exists(CI);
select CI from SLOAVAIL1M1;
O Where Exists(CI) do segundo LOAD somente vai quando já tiver (ou seja, existe) na memoria lido pelo LOAD da tabela Tmp.
Assim, uma expressão simples (count por exemplo) vai funcionar.
Mas, pode ser que não lhe atenda pois não sei direito o que você precisa......