【发布时间】:2019-10-02 10:53:01
【问题描述】:
我有一个包含 3 个金额度量和其他数量度量的事实表(文档粒度),这 3 个金额度量不是同一种货币,而是与一种可视化类型相关。
报告可以有三种类型的可视化,文档视图、公司视图、公司组视图。
如果您通过文档视图查看,您应该查看所有类型的货币,具体取决于文档(英镑、欧元、加拿大、美国、澳元等)。
如果您通过公司视图查看,您应该会看到与公司相关的货币(即公司 1 是欧元,公司 2 是美元等)。
公司组总是欧元。
示例:
事实表
╔═══════════════════════════════════════════════════════════════════════════╗
║ Fact Document ║
╠════════════╦═════════════╦══════════════╦═════════════╦═══════════════════╣
║ Company ID ║ Doc ID ║ Mtr Document ║ Mtr Company ║ Mtr Company Group ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 1 ║ 101 ║ 100 ║ 90 ║ 95 ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 2 ║ 102 ║ 250 ║ 150 ║ 120 ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 3 ║ 103 ║ 400 ║ 200 ║ 170 ║
╚════════════╩═════════════╩══════════════╩═════════════╩═══════════════════╝
模糊文档
╔════════════════════════════════════════════════════════════════════════╗
║ Dim Document ║
╠════════╦═══════════════════╦══════════════════╦════════════════════════╣
║ Doc ID ║ Document Currency ║ Company Currency ║ Company Group Currency ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 101 ║ USD ║ GBP ║ EUR ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 102 ║ CAN ║ USD ║ EUR ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 103 ║ AUD ║ USD ║ EUR ║
╚════════╩═══════════════════╩══════════════════╩════════════════════════╝
dim 可视化类型(手动和静态维度没有变化)
╔═══════════════════════╦═════════════════════════╗
║ Visualization type ID ║ Visualization type Name ║
╠═══════════════════════╬═════════════════════════╣
║ 1 ║ Document view ║
║ 2 ║ Company view ║
║ 3 ║ Company Group view ║
╚═══════════════════════╩═════════════════════════╝
货币疲软
╔══════════╗
║ Currency ║
╠══════════╣
║ EUR ║
║ USD ║
║ GBP ║
║ CAN ║
╚══════════╝
我想选择可视化类型并动态选择正确的度量(您所做的)。
但我还想动态选择与该度量相关的货币。 所以我想将一个维度链接到另一个维度,所以我只能有一个货币属性,我不想有 3 个不同的货币属性。
理想的输出:
已选择文档视图
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 100 ║ USD ║
║ 102 ║ 250 ║ CAN ║
║ 103 ║ 450 ║ AUD ║
╚═════════╩════════╩══════════╝
已选择公司视图
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 90 ║ GPB ║
║ 102 ║ 150 ║ USD ║
║ 103 ║ 200 ║ USD ║
╚═════════╩════════╩══════════╝
已选择公司组视图
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 95 ║ EUR ║
║ 102 ║ 120 ║ EUR ║
║ 103 ║ 170 ║ EUR ║
╚═════════╩════════╩══════════╝
可以这样做吗?
一切顺利,谢谢!
里卡多·卡斯特罗
更新
我在下面做了这个,当我在“dim Visualization type”中选择类型时,我得到的值是 1、2 或 3
CREATE MEMBER [Coin]
AS CASE WHEN [visualization type].[visualization type].CurrentMember.MEMBERVALUE = 'Document view'
THEN 1
ELSE (CASE WHEN [visualization type].[visualization type].CurrentMember.MEMBERVALUE = 'Company view'
THEN 2
ELSE 3 END) END,
VISIBLE = 1 ;
我需要获取属性值。我试过了:
[Document].[Document Currency].firstchild
STRTOMEMBER("[Document].[Document Currency].MEMBERS")
STRTOMEMBER('[Document].[Document Currency].[Document Currency].FirstChild', CONSTRAINED)
如果我输入以下代码,我会得到“全部”,这是我唯一不想要的:P:
[Document].[Document Currency].CurrentMember.Properties("Name")
有什么想法吗?
【问题讨论】: