今天的專案需要用資料倉儲的mdx來獲取資料,專案的基本已經做完了,比較了一下原來用sql寫的
方法,資料倉儲真是方便,並且相對簡單的多,當然,首先是要熟練mdx語法才行,因為剛接觸數
據倉庫,語句雖然寫出來了,但是還是有很多不熟悉的,特此總結一下。
專案的需求很簡單,根據查詢條件,條件中包括年,月,顯示前11個月的計畫銷售量和實際銷售量
和總的銷售量,如2023年,6月,顯示從2023年7月,到2023年6月每個月的銷量和到6月為止的總計畫
量和銷量。
以前用sql寫,麻煩在這前11個月的處理,要定義12個時間變數,通過時間函式dateadd()取得真實的時
間,顯示的時候要通過case判斷,還要對不同等級的客戶進行group by顯示
,一共寫了100多行的sql,現在用mdx,20幾行就搞定了,寫完的mdx如下:
with member [measures].[year_quantity] as
sum([date].[月份].&[2009-01-01t00:00:00]:[date].[月份].&[2009-06-01t00:00:00],[measures].
[month_quantity])
member [measures].[year_plan] as
sum([date].[月份].&[2009-01-01t00:00:00]:[date].[月份].&[2009-06-01t00:00:00],[measures].
[month_plan_quantity])
member [measures].[quantity_rate] as
[measures].[year_quantity]/[measures].[year_plan]*100
member [measures].[year_expense] as
sum([date].[月份].&[2009-01-01t00:00:00]:[date].[月份].&[2009-06-01t00:00:00],[measures].
[expense_amount])
select on 0
,non empty(
([cust_grade].[cust_grade].[cust_grade],[cust_grade].[cust_grade_name].[cust_grade_name])
*([cust].[cust].[cust],[cust].[cust_name].[cust_name])
*([cust].[city].[city],[cust].[city_name].[city_name])
) on 1
from [醫院銷售分析]
where ([月份].&[2009-06-01t00:00:00]:[月份].&[2009-06-01t00:00:00]
,[material].[material].[material].&[bm00000001]
,[subcompany].[organ].[organ].&[bg00000020]
,[office].[organ].[organ].&[bg00000074]
,[salesman].[personnel].&[dj00001495])
上面的mdx有幾個注意的地方:
1.時間的區間表示:[date].[月份].&[2009-01-01]:[date].[月份].&[2009-06-01]
從開始時間到結束時間用冒號[:]連線。
2.sql中有with來臨時儲存資料,mdx中用with member來臨時儲存。
3.mdx語句中,where中不能顯示此前已經出現的維度。
資料倉儲mdx的語法和sql有很大的不同,增加了許多函式,要想熟練應用mdx,對其函式要精通
才行,這樣才能應對複雜多變的需求
資料倉儲應用(一) 資料倉儲模型設計
關聯文章 資料倉儲應用 二 資料抽取 轉換 載入 etl 資料倉儲應用 三 sql server 2005的資料倉儲應用 聯機分析olap 一 問題背景 某電子商務 主要銷售電子類產品,產品又分為幾個大類別,包括 電腦類 手機類 鍵盤類等,每個類別內又細分為幾個小類別,各類別下又有諸多的商品,每乙個...
資料倉儲 資料倉儲部署
1 首先用下面的語句查詢是否有要建立的表空間 hospdw tab 和 hospdw idx 如果沒有,則把d database zyhip改為對應的路徑,有的話直接建立使用者 select tablespace name,file name,round bytes 1024 1024 0 size...
資料倉儲,什麼是資料倉儲?
資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲是為企業所有級別的決策制定過程提供支援的所有型別資料的戰略集合。它是單個資料儲存,出於分析性報告和決策支援的目的而建立。為企業提供需要業務智慧型來指導業務流程改進和監視時間 成本 質量和控制。資料倉儲是決策支援系統 ds...