sql-server-2012 - 查找父级的百分比

标签 sql-server-2012 ssas mdx

以下脚本旨在返回三个字段:

1.地区
2.收入
3.%Parent ...我们地理维度的结构,这将是该地区的收入占该洲收入的百分比。

WITH    
MEMBER Measures.[%Parent] AS 
    [Measures].currentmember/
    (
    [Geolocation].[Geography].currentmember.parent.name, 
    [Measures].currentmember
    ), format_string ="Percent"
SELECT
    ORDER(
        DESCENDANTS(
            [Geolocation].[Geography].[All],
            [Geolocation].[Geography].[Geography Region]
            ),
        [Geolocation].[Geography].CurrentMember.name, 
        BASC 
        ) ON ROWS,
    {[Measures].[Revenue], Measures.[%Parent]}  ON COLUMNS
FROM [MyCube]

目前它返回以下内容。如何更改脚本以获得我想要的百分比?

enter image description here

最佳答案

我认为[Measures].CurrentMember可能是错误的——它指的是计算成员。尝试明确引用该措施:

WITH MEMBER [Measures].[%Parent] AS
    [Measures].[Internet Order Quantity] / 
    ([Customer].[Customer Geography].CurrentMember.Parent, [Measures].[Internet Order Quantity])
    , format_string ="Percent" 
SELECT
    {[Measures].[Internet Order Quantity], [Measures].[%Parent]} ON 0,
    DrillDownLevel([Customer].[Customer Geography].[All Customers]) ON 1
FROM [Adventure Works]

结果:

               Internet Order Quantity            %Parent
All Customers                   60,398             1.#INF
Australia                       13,345             22.10%
Canada                           7,620             12.62%
France                           5,558              9.20%
Germany                          5,625              9.31%
United Kingdom                   6,906             11.43%
United States                   21,344             35.34%

(当然,我的简单示例并不保护所有成员,但您明白了。)

关于sql-server-2012 - 查找父级的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238891/

相关文章:

sql - 将 IIF 转换为 CASE (SQL Server 2012)

ssas - 如何查询所有SSAS数据库连接?

ssas - MDX - 在层次结构中向下钻取到成员标题包含 "#"的最后一级

sql-server - 用于检查/挖掘 SQL 分析服务挖掘模型的前端应用程序

SSAS - 在行上显示度量

mdx - 如何从获取更高级别成员的所有后代的 MDX 调用中排除某个成员

sql - 如果使用 SUM 如何计算平均值

SQL 如何查询引用特定外键值的表?

asp-classic - 从截断为 4000 个字符的存储过程返回 varchar(max) 输出参数

sql-server - 无法建立连接,因为目标机器主动拒绝它 127.0.0.1 :2382