Ana içeriğe geç

Direct Discovery alan listeleri

Alan listesi, alan teknik özelliklerinin virgülle ayrılmış listesidir (fieldname {, fieldname}). Alan teknik özelliği bir alan adı olabilir; bu durumda veritabanı sütun adı ve alan adı için aynı ad kullanılır. Veya alan teknik özelliği bir "alan alias"ı olabilir; bu durumda veritabanı ifadesine veya sütun adına bir QlikView alan adı verilir.

Alan adları, basit adlar veya alıntılanan adlar olabilir. Basit ad, alfabetik Unicode karakteriyle başlar ve bu karakteri alfabetik veya sayısal karakterlerden veya alt çizgilerden oluşan bir kombinasyon takip eder. Alıntılanan adlar çift tırnak işaretiyle başlar ve bir karakter dizisini içerir. Alıntılanan ad çift tırnak işareti içeriyorsa, bu tırnak işaretleri birbirine bitişik iki çift tırnak işareti kullanılarak gösterilir.

QlikView alan adları büyük/küçük harf duyarlıdır. Veritabanı alan adları, veritabanına bağlı olarak büyük/küçük harf duyarlı olabilir veya olmayabilir. Direct Discovery sorgusu tüm alan tanımlayıcılarının ve alias'ların büyük/küçük harf durumunu korur. Aşağıdaki örnekte "MyState" alias'ı, "STATEID" adlı veritabanı sütunundan verileri depolamak üzere dahili olarak kullanılır.

DIRECT QUERY Dimension STATEID as MyState Measure AMOUNT from SALES_TABLE;
 

Bunun sonucu, alias içeren bir SQL Select deyiminin sonucundan farklıdır. Alias açıkça alıntılanmazsa sonuç, hedef veritabanının döndürdüğü sütunun varsayılan büyük/küçük harf durumunu içerir. Aşağıdaki örnekte Oracle veritabanına yönelik bir SQL Select deyimi, alias büyük/küçük harf karışık olarak belirtilmesine karşın, dahili QlikView alias'ı olarak tümü büyük harflerle yazılan "MYSTATE," öğesini oluşturur. SQL Select deyimi veritabanı tarafından döndürülen sütun adını kullanır ve bu durumda Oracle için tümü büyük harf olur.

SQL Select STATEID as MyState, STATENAME from STATE_TABLE;
 

Bu davranıştan kaçınmak amacıyla alias'ı belirtmek için LOAD deyimini kullanın.

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

Bu örnekte, "STATEID" sütunu dahili olarak QlikView tarafından "MyState" şeklinde depolanır.

Veritabanı skaler ifadelerinin çoğuna alan teknik özelliği olarak izin verilir. Fonksiyon çağrıları da alan teknik özellikleri olarak kullanılabilir. İfadeler tekli tırnak işaretleri içinde içerilen boole, sayısal veya dizeler olan sabitleri içerebilir (eklenmiş tekli tırnak işaretleri birbirine bitişik tekli tırnak işaretleriyle gösterilir).

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, LOAD deyimlerinde toplamaları kullanmayı desteklemez. Toplamalar kullanılırsa sonuçlar öngörülemez olur. Aşağıdaki gibi bir LOAD deyimi kullanılmamalıdır:

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

SUM öğesi LOAD deyimi içinde olmamalıdır.

Direct Discovery, Direct Query deyimlerinde QlikView fonksiyonlarını da desteklemez. Örneğin, DIMENSION alanı için aşağıdaki teknik özellik, "Mth" alanının bir grafikte boyut olarak kullanılması halinde hatayla sonuçlanır:

month(ModifiedDate) as Mth