Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia pessoal, estou tentando implementar a expressão "NOT EXISTS" do SqlServer à seguir:
set @DataMesAnt = CAST(CONVERT(CHAR(10), GETDATE(), 121) AS SMALLDATETIME)
IF NOT EXISTS(SELECT * FROM NfiCabV ncv JOIN NfiItmV niv ON (
ncv.Nfi_Planta = niv.Nfi_Planta
AND ncv.Nfi_NotFis = niv.Nfi_NotFis
AND ncv.Nfi_Serie = niv.Nfi_Serie
)
WHERE ncv.Nfi_Planta in ('01','06')
AND ncv.Nfi_DatEmi = @DataMesAnt
AND ncv.Nfi_OriNfi = 'P'
AND ncv.Nfi_SitNfi IS NULL
AND ncv.Nfi_Serie IN ('U1', '1') )
BEGIN
set @DataMesAnt = CAST(CONVERT(CHAR(10), GETDATE()-1, 121) AS SMALLDATETIME)
END
Alguém poderia me ajudar a montar esse script ou tem algum material à respeito que eu possa ler?
Boa noite.
O que você têm que fazer é criar um campo com a data que quer excluir.
Se for criar de banco, tem que fazer mais ou menos assim:
Você cria uma tabela com o campo DataMesAnt.
A parte do select(cria a data coma função de banco) é a parte da função de banco e o load a parte do qlikview.
MesAnt:
Load DataMesAnt;
SELECT ........ as DataMesAnt
From tabela;
Depois você vai fazer a leitura da fato:
Fato:
Load *;
SELECT ........ as DataMesAnt
From tabela
Where not exists(DataMesAnt);
Segue o help:
Essas funções são usadas quando um valor dos registros de dados carregados anteriormente é necessário para a avaliação do registro atual.
Determina se um valor de campo específico existe em um campo especificado dos dados carregados até o momento. Campo é um nome ou uma expressão de caractere que é avaliada para um nome de campo. O campo deve existir nos dados carregados até o momento pelo script. Expr é uma expressão avaliada para o valor de campo a ser pesquisado no campo especificado. Se for omitido, será assumido o valor do registro atual no campo especificado.
Exemplos:
exists(Mês, 'Jan') retorna -1 (verdadeiro) se o valor de campo 'Jan' puder ser encontrado no conteúdo atual do campo Mês.
exists(IDnr, IDnr) retorna -1 (verdadeiro) se o valor do campo IDnr no registro atual já existir em qualquer registro lido anteriormente naquele campo.
exists (IDnr) é idêntico ao exemplo anterior.
Load Funcionário, ID, Salário from Funcionários.csv;
Load Nome& ' ' &Sobrenome as Funcionário, Comentário from Cidadãos.csv where exists (Funcionário, Nome& ' ' &Sobrenome);
Serão lidos somente os comentários sobre os cidadãos que são funcionários.
Load A, B, C, from Funcionários.csv where not exists (A);
Isso equivale a executar um distinct load no campo A.
Boa tarde.
Não sei o que você quer fazer, mas o Not Exists no Qlikview é para verificar se não existe valor para campos de mesmo nome na nuvem de dados. Não sei se você pode utilizar assim.
Boa tarde Luciano. Sou iniciante com Qlik e estava desenvolvendo algumas consultas até me deparar com esse trecho de código. Estou tentando implementar ele, não necessariamente com Exists, mas até agora não me veio uma solução em mente. Obrigado por ajudar.
No problema em questão, eu preciso setar um valor em uma variável, mas só se aquela consulta acima retornar alguma linha. Nas minhas tentativas e erros não consegui ainda encaixar isso dentro de um IF no Qlik.
Boa noite.
O que você têm que fazer é criar um campo com a data que quer excluir.
Se for criar de banco, tem que fazer mais ou menos assim:
Você cria uma tabela com o campo DataMesAnt.
A parte do select(cria a data coma função de banco) é a parte da função de banco e o load a parte do qlikview.
MesAnt:
Load DataMesAnt;
SELECT ........ as DataMesAnt
From tabela;
Depois você vai fazer a leitura da fato:
Fato:
Load *;
SELECT ........ as DataMesAnt
From tabela
Where not exists(DataMesAnt);
Segue o help:
Essas funções são usadas quando um valor dos registros de dados carregados anteriormente é necessário para a avaliação do registro atual.
Determina se um valor de campo específico existe em um campo especificado dos dados carregados até o momento. Campo é um nome ou uma expressão de caractere que é avaliada para um nome de campo. O campo deve existir nos dados carregados até o momento pelo script. Expr é uma expressão avaliada para o valor de campo a ser pesquisado no campo especificado. Se for omitido, será assumido o valor do registro atual no campo especificado.
Exemplos:
exists(Mês, 'Jan') retorna -1 (verdadeiro) se o valor de campo 'Jan' puder ser encontrado no conteúdo atual do campo Mês.
exists(IDnr, IDnr) retorna -1 (verdadeiro) se o valor do campo IDnr no registro atual já existir em qualquer registro lido anteriormente naquele campo.
exists (IDnr) é idêntico ao exemplo anterior.
Load Funcionário, ID, Salário from Funcionários.csv;
Load Nome& ' ' &Sobrenome as Funcionário, Comentário from Cidadãos.csv where exists (Funcionário, Nome& ' ' &Sobrenome);
Serão lidos somente os comentários sobre os cidadãos que são funcionários.
Load A, B, C, from Funcionários.csv where not exists (A);
Isso equivale a executar um distinct load no campo A.