-
Re: Retornar uma tabela com registros não coincidentes
Luciano Vasconcelos Oct 23, 2014 8:06 AM (in response to Eduardo Ferreira)Bom dia.
É simples.
Você vai primeiro ler a tabela B.
Depois você vai ler tabela A com a condição Where not exists Número Contrato e drop a tabela B.
Funciona da seguinte maneira: O Where not exists varre os valores de campos já carregados pelo nome do campo.
Segue explicação do help:
Funções Inter-registro
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. -
Re: Retornar uma tabela com registros não coincidentes
Yuri Nicolett Oct 23, 2014 8:12 AM (in response to Eduardo Ferreira)Eduardo, você pode fazer isso usando a função NOT Exists.
Segue uma app de exemplo com seus dados de teste
-
Exe Comunidade.qvw 146.8 K
-
-
Re: Retornar uma tabela com registros não coincidentes
Clever Anjos Oct 23, 2014 8:24 AM (in response to Eduardo Ferreira)Seguindo a recomendação do lucianosv
TEMP1:
LOAD * INLINE [
Número Contrato, Informação
Contrato1, A
Contrato5, B
Contrato6, B
Contrato7, C
];
NOCONCATENATE LOAD * INLINE [
Número Contrato, Informação
Contrato1, A
Contrato2, B
Contrato3, A
Contrato4, A
Contrato5, B
Contrato6, B
Contrato7, C
]
WHERE NOT Exists([Número Contrato],[Número Contrato]);
DROP Table TEMP1;
-
Re: Retornar uma tabela com registros não coincidentes
Eduardo Ferreira Oct 23, 2014 12:20 PM (in response to Eduardo Ferreira)Muito obrigado!
Dessa forma consegui fazer a exclusão dos contratos que preciso avaliar!