DE IN Listland Erpinv_Id = 5812},它們是相同的。同樣,針對其它條件C(J7)、C(Jll)、C(J14),也可以進行同樣的替換。
[0093]3、對于每個條件,將可能與該條件重疊的所有條件的公式與該條件相關(guān)聯(lián)。在子集Pl中,條件與公式關(guān)聯(lián)如下:c(J2): {J2?J6, J20} ;C(J7): {J7?J10, J20};C(Jll): {J11 ?J13、J20} ;C(J14):{J14 ?J18、J20} ;else: {J20}
[0094]在子集P2中,條件與公式關(guān)聯(lián)如下:C(J20):{J2?J18,J20} ;else: {} 0
[0095]在上述關(guān)聯(lián)式中,C(J2): {J2?J6,J20}表示條件C(J2)與公式J2, J3, J4, J5, J6, J20 相關(guān)聯(lián),公式 J2, J3, J4, J5, J6, J20 對應(yīng)的條件分別是 C(J2),C(J3)
,C (J4),C (J5),C (J6),C (J20),而條件 C (J2),C (J3),C (J4),C (J5),C (J6),C (J20)與條件C(J2)可能重疊。其它的關(guān)聯(lián)式的含義與上述相同。
[0096]4、對所述多個子集的每個子集建立索引,使得當給定一個數(shù)據(jù)記錄時,能夠在所述子集中定位對應(yīng)的條件。例如,利用字段Erpinv_Id為子集Pl建立索引。
[0097]5、存儲所有可分解的非模糊公式的中間結(jié)果,使得這些中間結(jié)果能夠被快速定位和更新。例如,由于公式(J2?J18)(即公式(I))是可分解的,并且是非模糊公式,在計算了公式J2?J18的結(jié)果后,利用公式結(jié)果存儲器存儲可分解的公式(I)的結(jié)果:Result (J2) = 11;Result(J7) = 12 ;Result(Jll) = 10 ;Result(J14) = 15。
[0098]由于公式J20不是可分解的,在根據(jù)本發(fā)明一個實施例的實時數(shù)據(jù)更新中,公式J20沒有結(jié)果值。在這種情況下,可以根據(jù)本發(fā)明實施例的歷史數(shù)據(jù)更新方法,基于數(shù)據(jù)庫中的歷史數(shù)據(jù)以及來自數(shù)據(jù)源的新數(shù)據(jù),周期性地更新目標單元格J20的值。根據(jù)本發(fā)明的一個實施例,實時數(shù)據(jù)更新器被配置為:對于插入到數(shù)據(jù)庫中的新數(shù)據(jù),查找其在每個子集中的條件;獲得與這些條件相關(guān)聯(lián)的多個公式集合;計算所述多個公式集合的交集;利用公式結(jié)果存儲器更新所獲得的交集中的每個公式的值。
[0099]具體地,對于實時插入到數(shù)據(jù)庫的每個新數(shù)據(jù)記錄,利用索引查找該新數(shù)據(jù)記錄在每個子集中對應(yīng)的條件,并獲得與上述條件相關(guān)聯(lián)的多個公式集合。例如,新數(shù)據(jù)進入數(shù)據(jù)庫,該新數(shù)據(jù)例如是 CTRYCODE = 616, Erpinv_Id = 5812, response_time = 50,此時,判斷CTRYCODE = 616在Iistl中,并通過索引Erpinv_Id = 5812查找上述新數(shù)據(jù)在每個子集中與其相關(guān)的對應(yīng)條件。這里,在子集Pl= {C (J2), C (J7), C (Jl I), C (J14) ,else}中,利用該新數(shù)據(jù)的索引Erpinv_Id = 5812查找到相關(guān)的條件為C (J2)和C(J20),而根據(jù)上述條件與公式的關(guān)聯(lián)關(guān)系可知,與條件C(J2)關(guān)聯(lián)的公式為J2?J6,J20,與條件C(J20)關(guān)聯(lián)的公式為J2?J18,J20。由此,可以獲得兩個公式集合{J2?J6,J20}和{J2?J18,J20}。
[0100]計算上述多個公式集合的交集,獲得一個公式集合。例如,計算這些公式集合的交集,獲得一個公式集合{J2,J3,J4,J5,J6,J20}。然后,利用公式結(jié)果存儲器,獲得公式J2, J3, J4, J5, J6的結(jié)果,并將這些結(jié)果分別與50進行比較。如果這些結(jié)果小于50,則將公式12,13,14,界,邛的值更新為50。否則,不做更新。因為公式J20是不可分解的,所以不能實時更新。根據(jù)本發(fā)明的一個實施例,可以改變單元格J20在電子數(shù)據(jù)表中的顯示顏色,以將其標記為過期數(shù)據(jù),表示J20不能實時更新數(shù)據(jù)。
[0101]更新電子數(shù)據(jù)表201中的每個單元格J2,J3, J4, J5, J6的顯示結(jié)果。
[0102]圖8是示出根據(jù)本發(fā)明實施例的數(shù)據(jù)處理方法的流程圖。
[0103]如圖8所示,在步驟S801,在電子數(shù)據(jù)表中提供數(shù)據(jù)顯示行和超行,所述數(shù)據(jù)顯示行用于顯示在數(shù)據(jù)庫中查詢到的部分數(shù)據(jù),所述超行用于表示在所述數(shù)據(jù)庫中查詢到的、所述數(shù)據(jù)顯示行顯示的所述部分數(shù)據(jù)之外的數(shù)據(jù)。在步驟S802,響應(yīng)于在所述電子數(shù)據(jù)表中創(chuàng)建公式,以及所述公式引用所述超行中的至少一個單元格,基于在所述數(shù)據(jù)庫中查詢到的數(shù)據(jù)計算所述公式的值。
[0104]根據(jù)本發(fā)明的一個實施例,在所述數(shù)據(jù)庫中查詢到的數(shù)據(jù)包含歷史數(shù)據(jù)和來自數(shù)據(jù)源的新數(shù)據(jù)中的至少一個。
[0105]根據(jù)本發(fā)明的一個實施例,在上述方法中,在所述數(shù)據(jù)顯示行中顯示的所述部分數(shù)據(jù)和所述超行表示的所述數(shù)據(jù)顯示行顯示的所述部分數(shù)據(jù)之外的數(shù)據(jù)是通過執(zhí)行第一數(shù)據(jù)庫查詢獲得的。
[0106]根據(jù)本發(fā)明的一個實施例,上述方法還包括步驟:根據(jù)所述公式修改所述第一數(shù)據(jù)庫查詢,以生成第二數(shù)據(jù)庫查詢。
[0107]根據(jù)本發(fā)明的一個實施例,上述方法還包括步驟:執(zhí)行所述第二數(shù)據(jù)庫查詢,以根據(jù)所述歷史數(shù)據(jù)和所述新數(shù)據(jù)中的至少一個來計算所述公式的值。
[0108]根據(jù)本發(fā)明的一個實施例,上述方法還包括步驟:構(gòu)建公式結(jié)果存儲器,以存儲所述公式的值。
[0109]根據(jù)本發(fā)明的一個實施例,上述方法還包括步驟:利用所述公式結(jié)果存儲器存儲的、基于所述新數(shù)據(jù)計算的值,來更新所述公式的值。
[0110]根據(jù)本發(fā)明的一個實施例,上述方法還包括步驟:利用所述公式結(jié)果存儲器存儲根據(jù)所述歷史數(shù)據(jù)計算的所述公式的值,作為所述公式的初始值。
[0111]根據(jù)本發(fā)明的一個實施例,其中構(gòu)建所述公式結(jié)果存儲器的步驟包括:從電子數(shù)據(jù)表的函數(shù)、數(shù)據(jù)庫查詢語句的條件子句中收集不同條件,構(gòu)成條件集合;將所述條件集合分解為多個子集,每個子集中的條件互不重疊;對于每個條件,將與該條件重疊的所有條件的公式與該條件相關(guān)聯(lián);對每個子集建立索引,使得當給定一個數(shù)據(jù)記錄時,能夠在所述子集中快速定位重疊的條件。
[0112]根據(jù)本發(fā)明的一個實施例,其中更新所述公式的值的步驟包括:利用所述索引查找所述新數(shù)據(jù)在每個子集中的條件;獲得與這些條件相關(guān)聯(lián)的多個公式集合;計算所述多個公式集合的交集;利用所述公式結(jié)果存儲器更新所獲得的交集中的每個公式的值。以上詳細描述了根據(jù)本發(fā)明的實施例的利用電子數(shù)據(jù)表分析數(shù)據(jù)的設(shè)備和方法。
[0113]本發(fā)明可以是系統(tǒng)、方法和/或計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括計算機可讀存儲介質(zhì),其上載有用于使處理器實現(xiàn)本發(fā)明的各個方面的計算機可讀程序指令。
[0114]計算機可讀存儲介質(zhì)可以是可以保持和存儲由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計算機可讀存儲介質(zhì)例如可以是一一但不限于一一電存儲設(shè)備、磁存儲設(shè)備、光存儲設(shè)備、電磁存儲設(shè)備、半導體存儲設(shè)備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、靜態(tài)隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(⑶-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機械編碼設(shè)備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?br>[0115]這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質(zhì)下載到各個計算/處理設(shè)備,或者通過網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機或外部存儲設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網(wǎng)關(guān)計算機和/或邊緣服務(wù)器。每個計算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計算機可讀程序指令,并轉(zhuǎn)發(fā)該計算機可讀程序指令,以供存儲在各個計算/處理設(shè)備中的計算機可讀存儲介質(zhì)中。
[0116]用于執(zhí)行本發(fā)明操作的計算機程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機器指令、機器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言一諸如Smalltalk、C++等,以及常規(guī)的過程式編程語目一諸如“C”語目或類似的編程語目。