Comando DEFINE RELATION

Informações do conceito

Relacionar tabelas

Define uma relação entre duas tabelas do Analytics.

Nota

Você pode relacionar até 18 tabelas do Analytics e acessar e analisar dados de qualquer combinação de campos nas tabelas relacionadas como se elas existissem em uma única tabela. É necessário especificar um comando DEFINE RELATION separado para cada par de tabelas relacionadas.

Sintaxe

DEFINE RELATION campo_chave WITH nome_da_tabela_relacionada INDEX nome_do_índice <AS nome_do_relacionamento>

Parâmetros

Nome Descrição
campo_chave

O campo-chave da tabela pai.

Você pode selecionar somente um campo-chave para cada relação.

Nota

Ao criar relações entre tabelas pai e tabelas netas, é preciso especificar um nome de campo-chave totalmente qualificado no formato nome_tabela.nome_campo.

Em Relacionar três tabelas, consulte: Comprovantes.criado_por

WITH nome_da_tabela_relacionada

O nome da tabela relacionada.

INDEX nome_do_índice

O nome do índice para o campo-chave da tabela relacionada.

Você deve indexar a tabela relacionada pelo campo-chave antes de relacionar a tabela.

AS nome_do_relacionamento

opcional

Um nome único para a relação.

Por padrão, o nome da tabela filha é usado como o nome da relação. Se estiver definindo relacionamentos adicionais à mesma tabela filha, será necessário especificar um nome único.

Exemplos

Relacionar duas tabelas

O exemplo abaixo relaciona a tabela aberta à tabela Cliente usando o campo do número do cliente (NumCliente) como o campo-chave:

DEFINE RELATION NumCliente WITH Cliente INDEX Cliente_em_NumCliente

Cliente_em_NumCliente é o nome do índice da tabela filha no campo-chave. Para relacionar tabelas, é necessário um índice na tabela filha.

Se o índice da tabela filha não existir quando você executar o comando DEFINE RELATION, será exibida uma mensagem de erro e a relação não é executada.

Dica

Se você definir uma relação na interface do usuário do Analytics, o índice da tabela filha será criado automaticamente.

Criar um índice na tabela filha antes de relacionar duas tabelas

Se necessário, você pode criar um índice da tabela filha imediatamente antes de relacionar as duas tabelas. O exemplo a seguir mostra a criação de um índice para a tabela filha Cliente antes de relacionar a tabela Ar à tabela Cliente.

OPEN Clientes
INDEX ON NumCliente TO Cliente_em_NumCliente
Open Ar
DEFINE RELATION NumCliente WITH Cliente INDEX Cliente_em_NumCliente

Relacionar três tabelas

O exemplo abaixo relaciona três tabelas no exemplo de projeto ACL_Rockwood.ACL:

  • Itens_comprovantes a tabela pai
  • Comprovantes a tabela filha
  • Funcionários a tabela neta

O uso da tabela Comprovantes como um tabela intermediária na relação permite relacionar cada item de comprovante com o funcionário que processou o item.

OPEN Comprovantes
INDEX ON número_comprovante TO "Comprovantes_por_número_comprovante"
OPEN Itens_comprovantes
DEFINE RELATION número_comprovante WITH Comprovantes INDEX Comprovantes_por_número_comprovante
OPEN Funcionários
INDEX ON número_funcionário TO "Funcionários_por_número_funcionário"
OPEN Itens_comprovantes
DEFINE RELATION Comprovantes.criado_por WITH Funcionários INDEX Funcionários_por_número_funcionário

Explicação da lógica da sintaxe

  1. Abra a tabela Comprovantes e indexe-a pelo campo número_comprovante.
  2. Abra a tabela Itens_comprovantes e relacione-a à tabela Comprovantes usando número_comprovante como campo-chave.
  3. Abra a tabela Funcionários e indexe-a pelo campo número_funcionário.
  4. Abra a tabela Itens_comprovantes e relacione-a à tabela Funcionários usando Comprovantes.criado_por como campo-chave.

    Nota

    Comprovantes.criado_por está disponível como campo-chave na segunda relação porque você já relacionou Itens_comprovantes e Comprovantes na primeira relação.

Observações

Para obter mais informações sobre o funcionamento desse comando, consulte Relacionar tabelas.