Comando JOIN

Informações do conceito

Associar tabelas

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.

  • PKEY campos_chave_primários use o campo ou os campos especificados

    Os campos são usados na ordem em que são listados.

  • PKEY ALL use todos os campos da tabela

    Os campos são usados na ordem em que aparecem no layout da tabela.

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.

  • FIELDS campos_primários inclua o campo ou os campos especificados

    Os campos são incluídos na ordem em que são listados.

  • FIELDS ALL inclua todos os campos da tabela

    Os campos são incluídos na ordem em que aparecem no layout da tabela.

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.

  • SKEY campos_chave_secundários use o campo ou os campos especificados

    Os campos são usados na ordem em que são listados.

  • SKEY ALL use todos os campos da tabela

    Os campos são usados na ordem em que aparecem no layout da tabela.

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.

  • WITH campos_secundários inclua o campo ou os campos especificados

    Os campos são incluídos na ordem em que são listados.

  • WITH ALL inclua todos os campos da tabela

    Os campos são incluídos na ordem em que aparecem no layout da tabela.

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)

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • todos os registros primários correspondentes e o primeiro registro secundário correspondente

Primários e secundários correspondentes

(primeiro secundário correspondente)

MANY

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • todos os registros primários correspondentes e todos os registros secundários correspondentes
  • um registro para cada correspondência entre a tabela primária e a secundária

Primários e secundários correspondentes

(todos os secundários correspondentes)

UNMATCHED

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • registros primários não correspondentes

Primários não correspondentes

PRIMARY

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • todos os registros primários (correspondentes e não correspondentes) e o primeiro registro secundário correspondente

Todos os primários e os secundários correspondentes

Nota

A palavra-chave BOTH é o mesmo que especificar PRIMARY.

SECONDARY

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • todos os registros secundários (correspondentes e não correspondentes) e os registros primários correspondentes

    Somente a primeira ocorrência de quaisquer registros secundários duplicados é associada a um registro primário.

Todos os secundários e os primários correspondentes

PRIMARY SECONDARY

A tabela de saída associada contém: Opção correspondente na caixa de diálogo Associar
  • todos os registros primários e secundários (correspondentes e não correspondentes)

    Somente a primeira ocorrência de quaisquer registros secundários duplicados é associada a um registro primário.

Todos os primários e secundários

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:

  • nome_tabela salva os resultados em uma tabela do Analytics

    Especifique nome_tabela como uma cadeia entre aspas com uma extensão de arquivo .FIL. For exemplo: TO "Saída.FIL"

    Por padrão, o arquivo de dados da tabela (.fil) é salvo na pasta que contém o projeto do Analytics.

    Use um caminho de arquivo absoluto ou relativo para salvar o arquivo de dados em uma pasta diferente já existente:

    • TO "C:\Saída.FIL"
    • TO "Resultados\Saída.FIL"

    Nota

    Os nomes de tabela são limitados a 64 caracteres alfanuméricos, sem contar a extensão .FIL. O nome pode incluir o caractere de sublinhado ( _ ) mas nenhum outro caractere especial e nenhum espaço. O nome não pode começar com um número.

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:

  • FIRST iniciar o processamento a partir do primeiro registro até alcançar o número de registros especificado
  • NEXT iniciar o processamento a partir do registro selecionado no momento até alcançar o número de registros especificado

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:

  • os mesmos campos
  • a mesma ordem de campos
  • os campos correspondentes têm o mesmo comprimento
  • os campos correspondentes têm o mesmo tipo de dados

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ção

A 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ção

A 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:

  • idioma código de idioma padrão ISO 639
  • país código de país padrão ISO 3166

    Se você não especificar um código de país, será usado o país padrão do idioma.

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.