Comando JOIN
Informações do conceito
Combina campos de duas tabelas do Analytics em uma única tabela nova do Analytics.
Nota
Para usar correspondência parcial na associação de tabelas, consulte Comando FUZZYJOIN.
Sintaxe
JOIN {PKEY campos_chave_primários|PKEY ALL <EXCLUDE nome_campo <...n>>} {FIELDS campos_primários|FIELDS ALL <EXCLUDE nome_campo <...n>>} {SKEY campos_chave_secundários|SKEY ALL <EXCLUDE campo_nome <...n>>} <WITH campos_secundários|WITH ALL <EXCLUDE nome_campo <...n>>> {sem_palavra_chave|MANY|UNMATCHED|PRIMARY|SECONDARY|PRIMARY SECONDARY} <IF teste> TO nome_teste <LOCAL> <OPEN> <WHILE teste> <FIRST intervalo|NEXT intervalo> <APPEND> <PRESORT> <SECSORT> <ISOLOCALE código_local>
Parâmetros
Nome | Descrição | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PKEY campos_chave_primários | PKEY ALL |
Um ou mais campos-chave ou uma expressão na tabela primária.
|
||||||||||||||||||||||||
EXCLUDE nome_campo opcional |
Válido apenas ao executar uma associação usando PKEY ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o PKEY ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do PKEY ALL. Por exemplo: PKEY ALL EXCLUDE campo_1 campo_2 |
||||||||||||||||||||||||
FIELDS campos_primários | FIELDS ALL |
Os campos ou expressões da tabela primária a serem incluídos na tabela de saída associada.
Nota Você deve especificar de forma explícita o campo-chave ou os campos-chave primários se desejar inclui-los na tabela associada. A especificação de FIELDS ALL também inclui esses campos. |
||||||||||||||||||||||||
EXCLUDE campos_primários opcional |
Válido apenas ao executar uma associação usando FIELDS ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o FIELDS ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do FIELDS ALL. Por exemplo: FIELDS ALL EXCLUDE campo_1 campo_2 |
||||||||||||||||||||||||
SKEY campos_chave_secundários | SKEY ALL |
Um ou mais campos-chave ou uma expressão na tabela secundária.
|
||||||||||||||||||||||||
EXCLUDE nome_campo opcional |
Válido apenas ao executar uma associação usando SKEY ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o SKEY ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do SKEY ALL. Por exemplo: SKEY ALL EXCLUDE campo_1 campo_2 |
||||||||||||||||||||||||
WITH campos_secundários | WITH ALL opcional |
Os campos ou expressões da tabela secundária a serem incluídos na tabela de saída associada.
Nota Você deve especificar de forma explícita o campo-chave ou os campos-chave primários e secundários se desejar inclui-los na tabela associada. A especificação de WITH ALL também inclui esses campos. Não será possível especificar WITH se você estiver usando o tipo de associação UNMATCHED. |
||||||||||||||||||||||||
EXCLUDE nome_campo opcional |
Válido apenas ao executar uma associação usando WITH ALL. O campo ou os campos a serem excluídos do comando. O EXCLUDE permite ajustar o WITH ALL excluindo os campos especificados. O EXCLUDE deve estar logo após do WITH ALL. Por exemplo: WITH ALL EXCLUDE campo_1 campo_2 |
||||||||||||||||||||||||
sem_palavra_chave | MANY | UNMATCHED | PRIMARY | SECONDARY | PRIMARY SECONDARY |
O tipo de associação a executar. sem_palavra_chave (omitir todas as palavras-chave de tipo de associação)
MANY
UNMATCHED
PRIMARY
Nota A palavra-chave BOTH é o mesmo que especificar PRIMARY. SECONDARY
PRIMARY SECONDARY
|
||||||||||||||||||||||||
IF teste opcional |
Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado apenas nos registros que atendem à condição. Nota O parâmetro IF é avaliado apenas em relação aos registros restantes em uma tabela depois da aplicação dos parâmetros de escopo (WHILE, FIRST, NEXT). Nota Para a maioria dos tipos de associação, uma condição IF se aplica somente à tabela primária. A única exceção é uma associação de muitos para muitos, na qual a condição IF também pode fazer referência à tabela secundária. Para fazer referência à tabela secundária, é preciso especificar um nome de campo totalmente qualificado (nome_tabela.nome_campo). Por exemplo: IF Cliente.Estado="SP" |
||||||||||||||||||||||||
TO nome_tabela |
A localização para onde enviar os resultados do comando:
|
||||||||||||||||||||||||
LOCAL opcional |
Salva o arquivo de saída no mesmo local que o projeto do Analytics. Nota Aplicável apenas na execução de um comando em uma tabela de servidor com um campo de saída que é uma tabela do Analytics. O parâmetro LOCAL deve seguir imediatamente o parâmetro TO. |
||||||||||||||||||||||||
OPEN opcional |
Abre a tabela criada pelo comando após a execução do comando. Válido apenas se o comando criar uma tabela de saída. |
||||||||||||||||||||||||
WHILE teste opcional |
Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado até que a condição seja avaliada como falsa ou o fim da tabela seja alcançado. Nota Se você usar WHILE juntamente com FIRST ou NEXT, o processamento de registros será interrompido assim que um limite for alcançado. |
||||||||||||||||||||||||
FIRST intervalo | NEXT intervalo opcional |
O número de registros a ser processado:
Use intervalo para especificar o número de registros a serem processados. Se você omitir FIRST e NEXT, todos os registros serão processados por padrão. |
||||||||||||||||||||||||
APPEND opcional |
Anexa a saída do comando ao final de um arquivo existente, em vez de sobrescrevê-lo. Nota Você deve garantir que a estrutura da saída do comando e o arquivo existente são idênticos:
O Analytics anexa a saída a um arquivo existente, seja qual for sua estrutura. Se a estrutura da saída e do arquivo existente não corresponderem, o resultado poderá ser dados misturados, ausentes ou incorretos. |
||||||||||||||||||||||||
PRESORT opcional |
Ordena a tabela primária pelo campo-chave antes de executar o comando. Nota Você não pode usar PRESORT dentro do comando GROUP. Indexação em vez de ordenaçãoA tabela primária pode ser indexada em vez de ordenada. Com tabelas grandes, o uso da indexação em vez da ordenação pode reduzir o tempo necessário para associar as tabelas. Se você estiver associando duas tabelas usando um campo-chave comum indexado, omita PRESORT e SECSORT. |
||||||||||||||||||||||||
SECSORT opcional |
Ordena a tabela secundária pelo campo da chave secundária antes executar o comando. Nota Não é possível usar SECSORT dentro do comando GROUP. Indexação em vez de ordenaçãoA tabela secundária pode ser indexada em vez de ordenada. Com tabelas grandes, o uso da indexação em vez da ordenação pode reduzir o tempo necessário para associar as tabelas. Se você estiver associando duas tabelas usando um campo-chave comum indexado, omita PRESORT e SECSORT. |
||||||||||||||||||||||||
ISOLOCALE código_local opcional |
Nota Aplicável apenas à edição Unicode do Analytics. A localidade do sistema no formato idioma_país. Por exemplo, para usar francês canadense, insira fr_ca. Use os códigos a seguir:
Se você não usar ISOLOCALE, a localidade do sistema padrão será usada. |
Exemplos
Associe duas tabelas como forma de descobrir empregados que também podem ser fornecedores
Os exemplos a seguir associam as tabelas MestreFunc e Fornecedor usando o endereço como campo-chave comum (os campos Endereço e Rua_Fornecedor).
O comando JOIN cria uma nova tabela com registros primários e secundários correspondentes, o que resulta em uma lista com todos os funcionários e fornecedores com o mesmo endereço.
OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
JOIN PKEY Endereço FIELDS NumFunc Nome Sobrenome Endereço SKEY Rua_Fornecedor WITH Num_Fornecedor Nome_Fornecedor Rua_Fornecedor TO "Funcionários_Fornecedores_Correspondentes" OPEN PRESORT SECSORT
Esta versão do comando JOIN inclui todos os campos das tabelas primária e secundária na tabela de saída associada.
OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
JOIN PKEY Endereço FIELDS ALL SKEY Rua_Fornecedor WITH ALL TO "Funcionários_Fornecedores_Correspondentes" OPEN PRESORT SECSORT
Esta versão do comando JOIN usa uma condição IF para restringir a tabela de saída associada aos funcionários e fornecedores com endereços em Minas Gerais.
O tipo de associação é MANY, o que é obrigatório quando uma condição IF faz referência a uma tabela secundária. O nome do campo na tabela secundária deve ser totalmente qualificado (Fornecedor.Estado_Fornecedor).
OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
JOIN PKEY Endereço FIELDS ALL SKEY Rua_Fornecedor WITH ALL IF Estado="MG" AND Fornecedor.Estado_Fornecedor="MG" TO "Funcionários_Fornecedores_Correspondentes" OPEN PRESORT MANY SECSORT
Associar duas tabelas como forma de descobrir registros de contas a receber sem cliente correspondente
O exemplo a seguir associa as tabelas Ar e Cliente usando o Número do cliente (Númclien) como o campo-chave comum.
O comando JOIN usa o tipo de associação UNMATCHED para criar uma nova tabela com registros primários não correspondentes, o que resulta em uma lista de registros de Ar que não são associados a qualquer registro de Cliente.
OPEN Ar PRIMARY
OPEN Cliente SECONDARY
JOIN PKEY Númclien FIELDS Númclien Vencimento Valor SKEY Númclien UNMATCHED TO "ClienteNãoEncontrado.fil" OPEN PRESORT SECSORT
Observações
Para obter mais informações sobre o funcionamento desse comando, consulte Associar tabelas.