With
在执行SELECT语句时,可使用WITH定义named member(动态成员)named set (动态集合),用于当前查询。
语法
WITH formula_specification SELECT
formula_specification ::= single_formula_specification [single_formula_specification...n]
single_formula_specification ::=
member_specification
| set_specification
member_specification ::=
MEMBER member_name AS value_expression
set_specification ::=
SET set_name AS set
参数
formula_specification | 定义动态成员或动态集合的语句,可多个。 |
single_formula_specification | 单个定义动态成员或动态集合的语句。 |
member_specification | 定义动态成员语句。 |
set_specification | 定义动态集合语句。 |
member_name | 动态成员名称。 |
set_name | 动态集合名称。 |
示例一
with member [期间].[x] as ([期间].[2023年].[2023年2季度].[2023年4月]-[期间].[2023年].[2023年2季度].[2023年5月])
select {[期间].[x],[期间].[2023年].[2023年2季度].[2023年4月],[期间].[2023年].[2023年2季度].[2023年5月]} on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品 : 不分
场景 : 累计预算
科目 : 办公费
组织 : 开发1部
期间 | 年初编报01版本 |
x | 5.00 |
2023年4月 | 7.00 |
2023年5月 | 2.00 |
[期间].[x]就是我们定义的动态成员,他的值为[2023年4月]-[2023年5月]。
示例二
with set test_set as [期间].[2023年].[2023年2季度].children
select test_set on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品 : 不分
场景 : 累计预算
科目 : 办公费
组织 : 开发1部
期间 | 年初编报01版本 |
2023年4月 | 7.00 |
2023年5月 | 2.00 |
2023年6月 | 1.00 |
test_set就是我们定义的动态集合,他的值为[2023年2季度]的子项。