【问题标题】:SSAS MDX datepart iso_weekSSAS MDX 日期部分 iso_week
【发布时间】:2016-03-08 13:49:35
【问题描述】:

在 T-SQL 中,我可以使用 dateprat 函数检索 ISO 周数:

 select datepart(iso_week, sysdatetime())

在 MDX 中是否有等价物?我很难找到它。 我可以在 MDX 中检索周数,例如像这样:

with member Measures.Test as (Format(now(), "yyyy") + cstr(datepart("ww", now())))
select  Measures.Test on columns
from    MyCube

但是 iso_week 怎么样? 谢谢, 彼得

【问题讨论】:

  • 不知道。执行此操作的正常方法是将 iso_week 设为时间维度表中的一列。
  • Tab Alleman:就在那里。但现在我需要从开始到本周检索一些数据。并且维度中没有当前周指标。有没有办法在不将当前 ISO 周指示符添加到日期维度中的情况下检索当前 ISO 周数?
  • @Petr 使层次结构可见,以便您在浏览立方体时可以看到它
  • @whytheq:周层次结构可见,带有正确的 iso 周数。 (虽然没有层次结构年 - 周 - 日)。我需要为报告编写一个 MDX 查询,其中包含当前 ISO 周之前的所有周。我很难找到正确的当前 ISO 周成员。有什么想法吗?
  • 你说有没有“ISO Week”属性?

标签: ssas mdx week-number datepart


【解决方案1】:

请尝试以下:

WITH
MEMBER [Measures].[Iso_week] AS Datepart("ww",NOW()-WeekDay(NOW(),2)+4,2,2)
SELECT [Measures].[Iso_week] ON 0
FROM [Some_cube]

更多帮助:http://www.snb-vba.eu/VBA_ISO_weeknummer_en.html

【讨论】:

  • 这看起来很有希望。你使用这种方法吗?公式可靠吗?非常感谢!
  • 我实际上使用了这种方法,而且我从来没有遇到过任何问题。我对2016-01-032016-01-04 等日期进行了一些额外的测试,并与SQL 的DATEPART(ISO_WEEK, [DATE]) 进行了比较,它显示了正确的值。
【解决方案2】:

参考评论

我需要为报告编写一个 MDX 查询,包含当前 ISO 周之前的所有周

您可以尝试以下方法:

with member 
Measures.CurrentWeek as cstr(datepart("ww", now()))

member 
WeekValue AS [Date].[Week].CURRENTMEMBER.MEMBER_VALUE

select  
Measures.dummymeasures 
ON 0,
[Date].[Week].[Week].MEMBERS HAVING WeekValue <= Measures.CurrentWeek 
ON 1
FROM [YourCube]
WHERE ([Date].[Year].&[2016])

【讨论】:

  • 我做类似的事情。但棘手的部分是:datepart("ww", now())。它不返回当前 ISO 周数。
猜你喜欢
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多