日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QlikView Script -组合键处理

發(fā)布時間:2025/3/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QlikView Script -组合键处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

QlikView裝載數(shù)據(jù)時,如果有兩個或以上表中存在兩個或以上相同的字段時就會自動產(chǎn)生組合鍵。

組合鍵實際上是產(chǎn)生了表間的多對多關(guān)系,這種關(guān)系邏輯上可能是對的。組合鍵會引起QlikView性能隱患,存儲所有出現(xiàn)的組合值,在數(shù)據(jù)量很大時會消耗太多的內(nèi)存。組合鍵越多Qlikview的運(yùn)行性能下降越厲害,百萬級數(shù)據(jù)量情況下如果4-5個組合鍵,系統(tǒng)可能運(yùn)行都成問題。

如何處理出現(xiàn)的組合鍵呢?

Case1:源數(shù)據(jù)表中組合的字段并不具有邏輯的組合含義,采用重命名方式解決

例如:

訂單:

Load

訂單號,訂單日期,訂單金額,操作員,操作時間

From Db.Sales;

?

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,產(chǎn)品數(shù)量,產(chǎn)品單價,操作員,操作時間

From Db.SalesDetails;

?

如果QlikView直接裝載會產(chǎn)生“訂單號、操作員,操作時間”這三個字段的組合鍵。再細(xì)看一下,訂單和訂單明細(xì)表中都有操作員、操作時間兩個字段,而這兩個字段對沒有邏輯上的關(guān)聯(lián),因此可以Rename該字段名稱。

?

修改如下:

訂單:

Load

訂單號,訂單日期,訂單金額,操作員 as訂單_操作員,操作時間 as訂單_操作時間

From Db.Sales;

?

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,產(chǎn)品數(shù)量,產(chǎn)品單價,操作員 as 訂單明細(xì)_操作員,操作時間as 訂單明細(xì)_操作時間From Db.SalesDetails;

?

如果重復(fù)的字段較多,則可以采用Qualify關(guān)鍵字。寫法如下:

Qualify? 操作員,操作時間;

訂單:

Load

訂單號,訂單日期,訂單金額,操作員,操作時間

From Db.Sales;

?

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,產(chǎn)品數(shù)量,產(chǎn)品單價,操作員,操作時間

From Db.SalesDetails;

?

或者

Qualify *;

訂單:

Load

訂單號,訂單日期,訂單金額,操作員,操作時間

From Db.Sales;

?

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,產(chǎn)品數(shù)量,產(chǎn)品單價,操作員,操作時間

From Db.SalesDetails;

Unqualify *;

?

Qualify關(guān)鍵字支持?,*等通配符。

?

?

Case2:源數(shù)據(jù)中邏輯上存在多對多的組合鍵,可以采用創(chuàng)建Key進(jìn)行處理

例如:

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,產(chǎn)品數(shù)量,產(chǎn)品單價,操作員,操作時間

From Db.SalesDetails;

?

采購單:

訂單號,產(chǎn)品號,銷售商號,采購時間,采購數(shù)量,采購單價

From Db.Supply;

?

“訂單號,產(chǎn)品號”在訂單明細(xì)和采購單兩表中邏輯上存在多對多關(guān)系,這時可以采用創(chuàng)建一個新的鍵值來表示:

訂單明細(xì):

Load

???????? 訂單號,產(chǎn)品號,

???????? 訂單號&’-’&產(chǎn)品號 as SupplyKey,

產(chǎn)品數(shù)量,產(chǎn)品單價,操作員,操作時間

From Db.SalesDetails;

?

采購單:

訂單號&’-’&產(chǎn)品號 as SupplyKey,

,銷售商號,采購時間,采購數(shù)量,采購單價

From Db.Supply;

?

有時組合鍵很長,這樣也會多耗費(fèi)Qv的內(nèi)存,可以進(jìn)一步優(yōu)化:

AutoNumber(訂單號&’-’&產(chǎn)品號) as SupplyKey產(chǎn)生組合鍵值

AutoNumber會根據(jù)“訂單號&’-’&產(chǎn)品號”不同產(chǎn)生唯一的數(shù)值。該函數(shù)的缺點就是不能用于增量數(shù)據(jù)裝載的環(huán)境中,因為AutoNumber每次裝載會重新編號。

要解決這個問題,Qv8提供了Hash128()函數(shù),寫法如下:

Hash128(訂單號&’-’&產(chǎn)品號) as SupplyKey

?

?

Case2:源數(shù)據(jù)中邏輯上存在多對多的組合鍵,組合字段較多,可以采用合并大表的方式解決

例如:

XXX:

Load

???????? A,B,C,D,E,F

From Db.xxx;

?

YYY:

Load

A,B,C,D,H,I

From Db.YYYY;

?

XXX和YYY表中都有A,B,C,D字段,可以考慮組合成大表的方式解決,采用Concatenate關(guān)鍵字:

?

XXX:

Load

???????? A,B,C,D,E,F

From Db.xxx;

?

Concatenate

Load

A,B,C,D,H,I

From Db.YYYY;

轉(zhuǎn)載于:https://www.cnblogs.com/hb56-QlikView/archive/2010/04/26/1720982.html

總結(jié)

以上是生活随笔為你收集整理的QlikView Script -组合键处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。