oracle修改成olap模式,的Oracle OLAP Java实现 - 正确源加入
為此,我使用的是默認的模式/例如從Oracle OLAP下載部分GLOBAL 。
這是從Oracle OLAP的Java引導代碼的修改后的版本:
MdmCube unitsCube =
(MdmCube)mdmDBSchema.getTopLevelObject("PRICE_CUBE_AWJ");
MdmBaseMeasure mdmUnits =
(MdmBaseMeasure)unitsCube.getMeasure("UNIT_PRICE");
NumberSource units = (NumberSource)mdmUnits.getSource();
MdmPrimaryDimension mdmPRODDim = (MdmPrimaryDimension)mdmDBSchema.getTopLevelObject("PRODUCT_AWJ");
MdmLevelHierarchy mdmPRODHier = (MdmLevelHierarchy)mdmPRODDim.getDefaultHierarchy();
StringSource custHier = (StringSource)mdmPRODHier.getSource();
StringSource prodHier = (StringSource)mdmPRODHier.getSource();
Source famSel =
prodHier.selectValues(new String[] {"PRODUCT_PRIMARY::FAMILY::ACC",
"PRODUCT_PRIMARY::FAMILY::OS"});
Source querySource2 = units.join(timeSel).join(famSel).join(mdmPRODHier.getSource());
上述查詢的結果是一個笛卡爾乘積,并且每個家庭與每個產品的層次結構匹配:
7: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::ACC--------CALENDAR_YEAR::YEAR::CY1999--------*35.99375*--------)
8: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::ACC--------CALENDAR_YEAR::YEAR::CY2000--------*32.9807070707071*--------)
9: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::ACC--------CALENDAR_YEAR::YEAR::CY2001--------*36.8141666666667*--------)
10: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::OS--------CALENDAR_YEAR::YEAR::CY1999--------*58.3433333333333*--------)
11: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::OS--------CALENDAR_YEAR::YEAR::CY2000--------*62.113125*--------)
12: (PRODUCT_PRIMARY::CLASS::HRD--------PRODUCT_PRIMARY::FAMILY::OS--------CALENDAR_YEAR::YEAR::CY2001--------*65.7258333333333*--------)
我們可以在這里看到它確實與ACC(附件)匹配的HRD(硬件)的,它有一個價值,但不應該有,因為ACC屬于類SFT(軟件)。請參閱附件截圖以供參考。
有沒有一種方法,使排斥,以至于當我加入這兩個來源,只顯示了這是可能的值,在這種情況下,該ACC只會在SFT類下顯示為在屏幕截圖的意義。
歡迎所有幫助,
謝謝。
2011-04-19
Adnan
總結
以上是生活随笔為你收集整理的oracle修改成olap模式,的Oracle OLAP Java实现 - 正确源加入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android震动服务能设置时长么,An
- 下一篇: image pil 图像保存_使用PIL