谁能告诉我如何在MDX查询中格式化日期?我们不使用SSRS来生成报告,我们有自己的自定义报告工具建立在SSAS.Date过滤器发送日期的yyyy/mm/dd格式。到目前为止,我们还没有日期维度。我的date成员如下所示:
[CNB_DimSampleInfo].[COAReleasedON].&[2013-01-02T03:20:00]. 如何在STRTOmemeber中设置日期格式?我试过这样做。我的问题是,来自用户的值将如何适应我的成员格式,如下所示。我知道SSRS很容易做到,但我们不使用ssrs。下面是我的代码
我的代码
SELECT
[Measures].[Result] ON COLUMNS
,NON EMPTY
{
[CNB_DimProduct].[ProductUcode].[ProductUcode].ALLMEMBERS*
[CNB_DimProduct].[ProductDesc].[ProductDesc].ALLMEMBERS*
[CNB_DimTest].[TestUcode].[TestUcode].ALLMEMBERS*
[CNB_DimTest].[TestName].[TestName].ALLMEMBERS*
[CNB_DimSampleInfo].[LotNo].[LotNo].ALLMEMBERS*
[CNB_DimSampleInfo].[BatchNo].[BatchNo].ALLMEMBERS*
[CNB_DimSampleInfo].[COAReleasedBy].[COAReleasedBy].ALLMEMBERS*
[CNB_DimSampleInfo].[COAReleasedON].[COAReleasedON].ALLMEMBERS*
[CNB_DimSampleInfo].[SampleReferenceNo].[SampleReferenceNo].ALLMEMBERS*
[CNB_DimSampleInfo].[AnalysedBy].[AnalysedBy].ALLMEMBERS*
[CNB_DimSampleInfo].[AnalysedOn].[AnalysedOn].ALLMEMBERS
} ON ROWS
FROM
(
SELECT
StrToMember
(
"[CNB_DimSampleInfo].[COAReleasedON].[" + Format("2013-01-02","yyyy MM")
+ "]:STRTOMember([CNB_DimSampleInfo].[COAReleasedON].["
+
Format
("2013-01-02"
,"yyyy MM"
)
+ "]"
) ON COLUMNS
FROM Cube001
);发布于 2016-04-29 17:50:02
还有一个StrToSet,它更适合您的环境,因为您使用的是返回一个集合的:运算符:
...
...
FROM
(
SELECT
StrToSet
(
"[CNB_DimSampleInfo].[COAReleasedON].[" + Format("2013-01-02","yyyy MM")
+ "]:[CNB_DimSampleInfo].[COAReleasedON].["
+
Format
("2013-01-02"
,"yyyy MM"
)
+ "]"
,CONSTRAINED
) ON COLUMNS
FROM Cube001
);Format("2013-01-02","yyyy MM")日期的键值是否如下所示?
[CNB_DimSampleInfo].[COAReleasedON].[2013 01]发布于 2016-04-29 19:23:39
您的date成员
[CNB_DimSampleInfo].[COAReleasedON].&[2013-01-02T03:20:00]看起来不适合作为用户日期参数,因为它精确到分钟(可能是秒)。除非用户精确匹配时间,否则他们将什么也得不到。但是,您可能是通过在UI中使用LimitToList选择列表来强制执行精确匹配。
要获取此成员名称,您可以将输入字符串格式化为:
格式(您的输入参数,'yyyy-MM-ddThh:mm:ss')
发布于 2016-05-03 12:43:16
我试过使用filter,如下所示
SELECT
[Measures].[Result] ON COLUMNS
,NON EMPTY
{
filter([CNB_DimSampleInfo].[COAReleasedON].members,instr([CNB_DimSampleInfo].[COAReleasedON].currentmember.member_caption,"2013-01-02")>0 or instr([CNB_DimSampleInfo].[COAReleasedON].currentmember.member_caption, "2013-04-01")>0)
*[CNB_DimProduct].[ProductUcode].[ProductUcode].ALLMEMBERS*
[CNB_DimProduct].[ProductDesc].[ProductDesc].ALLMEMBERS*
[CNB_DimTest].[TestUcode].[TestUcode].ALLMEMBERS*
[CNB_DimTest].[TestName].[TestName].ALLMEMBERS
} ON ROWS来自Cube002
https://stackoverflow.com/questions/36929516
复制相似问题