|
SQL Server 2008中SQL应用系列及BI笔记系列--目录索引
导读:本文介绍元数组(Tuples)的基础内容,已经了解的读者可以直接略过。
本文将包括以下内容:
■1、理解cube空间的概念。
■2、使用tuples从Cube中提取数据。
■3、使用多种语法引用层次结构成员(hierarchy members)。
本文所用数据库和所有源码,请到微软官网下载
1、N维空间(N-dimensional Space)和Cube空间
http://09yuxg.blu.livefilestore.com/y1pgx7R3N5-idj9ZcR61U4gL7RTqGmYx84ZNxRUmLwhC5QjY55kZQ2lx2stdlEaWtuFwZp3bNON1OEfromKTaU32ng-IoaEP2C0/2011-6-12%2021-33-51.png?psid=1
http://09yuxg.blu.livefilestore.com/y1p72xxOuOr8ouYZdXFqCfwv03MWI_zb2TwfBaeDhrx_2tmr2qMfk4r-LkngXxVPI81xYOAj4b1dcGzrYt6fw2qO1ULjaVrvjw6/2011-6-12%2021-35-58.png?psid=1
http://09yuxg.blu.livefilestore.com/y1pHvO5lpv0c0r5pfHiYMTk-OicbUKiXHn80EwYaBfi4AFaqJ0avCWvMJ_QAMLEpOVJqN_aYKwWkDpGoocgA50KzkpsYOahwnHQ/2011-6-12%2021-37-10.png?psid=1
类似地,我们可以用(a1,a2,….,Ax)表示X维度的一个点。
http://09yuxg.blu.livefilestore.com/y1pOl1TnpRA-tjrAZmkC6O_1xA3EANrpA-Wvs-2S2TnasCpA5KOHRnXGoX8Y57LlDcGZ0nUTRqQ3ionYbzVweyNqsvEZlPTs9Ka/2011-6-12%2022-08-22.png?psid=1
2、使用Tuples访问数据
打开MDX查询编辑器窗口,输入
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[All Periods],
[Date].[Fiscal Year].[All Periods],
[Product].[Category].[Bikes],
[Product].[Subcategory].[Mountain Bikes],
[Measures].[Measures].[Reseller Sales Amount]
)
;
/*
$26,492,684.38
*/
上述语句中,包含五部分元组(Tuples)
改变下元组(Tuples),结果相同。
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Product].[Subcategory].[Mountain Bikes],
[Date].[Calendar Year].[All Periods],
[Date].[Fiscal Year].[All Periods],
[Product].[Category].[Bikes],
[Measures].[Measures].[Reseller Sales Amount]
)
;
/*
$26,492,684.38
*/ 4、理解Cells
每一个Cell包含了Value和FORMATTED_VALUE
http://09yuxg.blu.livefilestore.com/y1pVNhoeuCPkSwHT1bMJl3WV0Hh2gxQELCYtpjFjZPKmQVPsUkbNhYp_pYzOrpkXGURyphByORN9H56U9a8DSSVA1dtNuvaWTeS/2011-6-12%2022-29-18.png?psid=1
可以修改默认值
http://09yuxg.blu.livefilestore.com/y1pJCOA4pk8zxRYpQwAR2PwduFhPlNxTXe0PgArHZuwoCN3oCk1tEtZXTWtFhualVsJDirrr8zZC0zgZ2UDSrJtjBuQK5_jse4d/2011-6-12%2022-32-16.png?psid=1
关于Cell属性,请看MSDN(http://msdn.microsoft.com/zh-cn/library/ms145573.aspx)
5、使用局部元组(Partial Tuples)
http://09yuxg.blu.livefilestore.com/y1peD7XTqzybzLmHyEJBbWp0SZHWF99Uv1pLUcf8UqPMliiMoQVocfoJTvRX_xnIGNMtqMbLyHYIgC-dNloLVn-Q8t7ybp0NR9M/2011-6-12%2022-43-53.png?psid=1
当度量成员被移走时,一个局部元组(Partial Tuples)被提交,AS检查第一个默认的成员,提供缺失度量,这些度量的属性的层次结构的默认成员是Reseller Sales Amount,该成员将被应用,元组变完整。
http://09yuxg.blu.livefilestore.com/y1pWmDiwNsGsVgIJpjCwY6NGSzznVGQTCpEEQ66vCH-J6SIScnZmj7WRZiRzByyTuvWDZX4aacdgeV93TuxFferHTJTLRq6vimF/2011-6-12%2022-57-39.png?psid=1
http://09yuxg.blu.livefilestore.com/y1pQak35Zz-wTfsPKECktyxa1-_JLgK6m0aWCn3R1nVloljmQM8f7SavwENpEBQF15SAypdSu5IZZlKY8b2pLJEXpfJi15qDeUI/2011-6-12%2023-01-50.png?psid=1
http://09yuxg.blu.livefilestore.com/y1pOwxAnRR1nsctOZSgPe9adSanFTOFv_VlCxm7hTsTTGU8DGqYVkqxrDHxVTBi4bsdWyFB0Bw5Y0UQl5ocEFNSwliFxpv8slEc/2011-6-12%2023-02-06.png?psid=1
6、使用用户层次结构生成Tuples
理解User-Hierarchy转换
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2003].[FY 2003]
;
/*
$12,000,247.33
*/
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[CY 2003],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$12,000,247.33
*/
http://09yuxg.blu.livefilestore.com/y1pvobWDdHrPQOfBovo-yZgdnEKrkWeUx2m4Fn76Ql0FaK3KuU0mD8h6ya5PvqM4oQBOEHu4odPt8jmOR_cpAPs316W-nW7evxG/2011-6-12%2023-08-29.png?psid=1
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Fiscal Year].[FY 2003]
;
/*
$15,921,423.19
*/
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar Year].[CY 2002],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002]
;
/*
$24,144,429.65
*/
SELECT
FROM[Chapter 3 Cube]
WHERE[Date].[Calendar Year].[CY 2002]
;
/*
$24,144,429.65
*/
http://09yuxg.blu.livefilestore.com/y1pC2hgjhGi3JmWYMF3cWO5dkVnqDvqF9fC7HgkTSDWw0pAWQfI20ESORnzbeyka7ClstyrOcz1j3uwPHO-w5b8Vs2rPqgxVb3J/2011-6-12%2023-14-10.png?psid=1
避免引用冲突
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
http://09yuxg.blu.livefilestore.com/y1p3r2-d-hsfixULtmciY127WhrDCpiAyBaIhlLX7jPk3OvciLPEyEzyujWCg7-aPNlEQ_jhALYnru5ad6PMcpbkgc6N82eZ-og/2011-6-12%2023-22-54.png?psid=1
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002].[FY 2003],
[Date].[Fiscal Year].[FY 2003]
)
;
/*
$15,921,423.19
*/
http://09yuxg.blu.livefilestore.com/y1paZGc6kIVt3ZmqcHeTRe0TsJ5zCH6XXymZwC5kCpQfNCAVPsx09e6TAtGJdtl1ZpMZ8RO_Df5Gd2zr6WJP3isMlpn8GquioWH/2011-6-12%2023-23-34.png?psid=1
而下面的引用是冲突的!
SELECT
FROM[Chapter 3 Cube]
WHERE (
[Date].[Calendar-To-Fiscal Year].[Calendar Year].[CY 2002].[FY 2003],
[Date].[Fiscal Year].[FY 2002]
)
;
/*
(null)
*/
http://09yuxg.blu.livefilestore.com/y1p9IYDS2vaHaMhvO4y_W-JjdbBh50DQOOy3KZceNbUdNu7BHP8TGVwpAuPgur5lZmjPGfebUsXmrUJxapfj-z6rBWgv5QnYKJ7/2011-6-12%2023-26-39.png?psid=1
本文对tuples有了一个初步的介绍,下文将关注MDX基础的另一个概念:结果集(Sets)。
参考资源:
1、MDX官方教程(http://msdn.microsoft.com/zh-cn/library/ms145506.aspx) |
|
|