Direct Query

A instrução DIRECT QUERY permite acessar tabelas por meio de uma conexão ODBC ou OLE DB usando a função Direct Discovery.

Syntax:  

DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist[DETAIL fieldlist] FROM tablelist

[WHERE where_clause]

 

As palavras-chaves DIMENSION, MEASURE e DETAIL podem ser usadas em qualquer ordem.

As cláusulas das palavras-chaves DIMENSION e FROM são obrigatórias em todos os comandos DIRECT QUERY. A palavra-chave FROM deve aparecer após a palavra-chave DIMENSION.

Os campos especificados diretamente após a palavra-chave DIMENSION são carregados na memória e podem ser usados para criar associações entre dados da memória e do Direct Discovery.

Nota: O comando DIRECT QUERY não pode conter a cláusula DISTINCT ou GROUP BY.

Ao usar a palavra-chave MEASURE, é possível definir campos que o QlikView tenha conhecimento a um “nível meta”. Os dados reais de um campo de medida residem apenas no banco de dados durante o processo de carga de dados e são recuperados de forma ad hoc, orientados pelas expressões do gráfico que são usadas ​​em uma visualização.

Normalmente, os campos com valores discretos que serão usados como dimensões devem ser carregados com a palavra-chave DIMENSION, enquanto os números que serão usados em agregações devem ser selecionados apenas com a palavra-chave MEASURE.

DETAIL são campos que fornecem informações ou detalhes, como campos de comentários, que um usuário pode querer exibir em uma tabela. Os campos DETAIL não podem ser usados em expressões de gráfico.

Por concepção, o comando DIRECT QUERY é neutro de fonte de dados para as fontes de dados que oferecem suporte para SQL. Por essa razão, o mesmo comando DIRECT QUERY pode ser usado para diferentes bancos de dados SQL sem alteração. O Direct Discovery gera consultas apropriadas para o banco de dados, conforme necessário.

A sintaxe NATIVE da fonte de dados pode ser usada quando o usuário conhece o banco de dados que será consultado e deseja explorar extensões específicas para o banco de dados para o SQL. A sintaxe NATIVE da fonte de dados é suportada:

  • Como expressões de campo nas cláusulas DIMENSION e MEASURE
  • Como o conteúdo da cláusula WHERE

Examples:  

DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE
NATIVE ('X % Y') AS X_MOD_Y
FROM TableName
DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE X, Y
FROM TableName
WHERE NATIVE ('EMAIL MATCHES "\*.EDU"')
Nota: Os seguintes termos são usados ​​como palavras-chave e por isso não podem ser usados como nomes de coluna ou de campo sem estar entre aspas: and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

Arguments:  

Argumento Descrição
fieldlist

Uma lista de especificações de campo separada por vírgula, fieldname {, fieldname}. Uma especificação de campo pode ser um nome de campo, no qual o mesmo nome é usado para o nome de coluna do banco de dados e o nome de campo do QlikView. Ou uma especificação de campo pode ser um "alias de campo", no qual uma expressão do banco de dados ou um nome de coluna recebe um nome de campo do QlikView.

Listas de campos do Direct Discovery

tablelist

Uma lista de nomes de tabelas ou visualizações no banco de dados dos quais os dados serão carregados. Normalmente, serão exibições que contêm um JOIN realizado no banco de dados.

where_clause

A sintaxe completa das cláusulas de banco de dados WHERE é definida aqui, mas a maior parte das "expressões relacionais" de SQL é permitida, inclusive o uso de chamadas de função, o operador LIKE para strings, IS NULL e IS NOT NULL e IN. BETWEEN não está incluído.

NOT é um operador unário, ao contrário de um modificador em determinadas palavras-chaves.

Examples:  

WHERE x > 100 AND "Region Code" IN ('south', 'west')
WHERE Code IS NOT NULL and Code LIKE '%prospect'
WHERE NOT X in (1,2,3)

O último exemplo não pode ser escrito como:

WHERE X NOT in (1,2,3)

Example:  

Neste exemplo, uma tabela de banco de dados chamada TableName, que contém campos Dim1, Dim2, Num1, Num2 e Num3é usada.Dim1 e Dim2 serão carregados no conjunto de dados do QlikView.

DIRECT QUERY DIMENSTION Dim1, Dim2 MEASURE Num1, Num2, Num3 FROM TableName ;
 

Dim1 e Dim2 estarão disponíveis para uso das dimensões. Num1, Num2 e Num3 estarão disponíveis para agregações. Dim1 e Dim2 também estão disponíveis para agregações. O tipo de agregações para as quais Dim1 e Dim2 podem ser usadas depende de seus tipos de dados. Por exemplo, em muitos casos, os campos DIMENSION contêm dados de caracteres, como nomes ou números de conta. Esses campos não podem ser agrupados, mas podem ser contados: count(Dim1).

Nota: DIRECT QUERY são comandos escritos diretamente no editor de script. Para simplificar a construção de comandos DIRECT QUERY, você pode gerar um comando SELECT de uma conexão de dados e, em seguida, editar o script gerado para transformá-lo em um comando DIRECT QUERY.
Por exemplo, o comando SELECT:

SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;


pode ser transformado no seguinte comando DIRECT QUERY:

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;