QlikWorld 2020 Global Conference. Únase a nosotros para descubrir cómo aprovechar al máximo sus datos. Actúe rápido. Regístrese ahora y ahorre dinero.

Listas de campos en Direct Discovery

Una lista de campos es una lista de especificaciones de campo separadas por comas, fieldname {, fieldname}. Una especificación de campo puede ser un nombre de campo, en cuyo caso se utiliza el mismo nombre para el nombre de la columna de la base de datos y el nombre del campo. O una especificación de campo puede ser un "campo alias," en cuyo caso se da un nombre de campo QlikView a una expresión de base de datos o nombre de columna.

Los nombres de campo pueden ser o nombres simples o nombres entrecomillados. Un nombre simple comienza con un carácter alfabético Unicode y va seguido de cualquier combinación de caracteres alfabéticos o numéricos o guiones bajos. Los nombres entrecomillados comienzan con unas comillas dobles y contienen cualquier secuencia de caracteres. Si un nombre entrecomillado contiene comillas dobles, esas comillas dobles se representan empleando dos signos de dobles comillas adyacentes.

Los nombres de campo en QlikView son sensibles a mayúsculas. Los nombres de campo de las bases de datos pueden ser o no sensibles a mayúsculas, dependiendo de la base de datos concreta. Una consulta Direct Discovery preserva el caso de todos los identificadores de campos y alias. En el ejemplo a continuación, el alias "MyState" se utiliza internamente para almacenar los datos de la columna de la base de datos "STATEID".

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Esto difiere del resultado de una sentencia SQL Select con un alias. Si el alias no se entrecomilla explícitamente, el resultado por defecto es el de una columna devuelta por la base de datos destino. En el ejemplo siguiente, la sentencia SQL Select en una base de datos Oracle crea "MYSTATE,", con todas las letras en mayúscula, como el alias interno de QlikView incluso aunque el alias se haya especificado como un caso mixto. La sentencia SQL Select utiliza el nombre de columna devuelto por la base de datos, el cual en el caso de Oracle es todo en mayúsculas.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Para evitar este comportamiento, utilice la sentencia LOAD para especificar el alias.

Load STATEID as MyState, STATENAME;
SQL Select STATEID, STATEMENT from STATE_TABLE;
 

En este ejemplo, la columna "STATEID" es almacenada internamente por QlikView como "MyState".

Se permiten la mayoría de expresiones escalares de bases de datos como especificaciones de campos. Las llamadas a funciones también se pueden utilizar en especificaciones de campos. Las expresiones pueden contener constantes que son booleanas, numéricas, o cadenas contenidas en signos de entrecomillado simple (la inclusión de signos de entrecomillado simple viene representada por signos de entrecomillado adyacentes).

Examples:  

DIRECT QUERY DIMENSION SalesOrderID, RevisionNumber MEASURE SubTotal AS "Sub Total" FROM AdventureWorks.Sales.SalesOrderHeader
DIRECT QUERY DIMENSION "SalesOrderID" AS "Sales Order ID" MEASURE SubTotal,TaxAmt,(SubTotal-TaxAmt) AS "Net Total" FROM AdventureWorks.Sales.SalesOrderHeader
DIRECT QUERY DIMENSION (2*Radius*3.14159) AS Circumference, Molecules/6.02e23 AS Moles MEASURE Num1 AS numA FROM TableName
DIRECT QUERY DIMENSION concat(region, 'code') AS region_code MEASURE Num1 AS NumA FROM TableName

Direct Discovery no permite el uso de agregaciones en sentencias LOAD. Si se utilizaran agregaciones, los resultados serían impredecibles. Una sentencia LOAD como la siguiente no debería utilizarse:

DIRECT QUERY DIMENSION stateid, SUM(amount*7) AS MultiFirst MEASURE amount FROM sales_table

El SUM no debería estar en la sentencia LOAD.

Direct Discovery tampoco admite funciones QlikView en sentencias Direct Query. Por ejemplo, la siguiente especificación de un campo DIMENSION da como resultado un fallo cuando el campo "Mth" se emplea como una dimensión en un gráfico:

month(ModifiedDate) as Mth