【问题标题】:how to get min or max date on columns in mdx query如何在 mdx 查询中获取列的最小或最大日期
【发布时间】:2016-05-23 01:17:48
【问题描述】:

我可以为此示例实现什么 mdx 查询逻辑,以在结果集中为 hrid = 1 获取两行,其中 1/1/16 作为第一行的最小日期(开始),其中 someattribut 显示在值为“A”的列上 和 1/15/16 作为第二行的最小日期(开始),其中 someattribute 的值为“B”并且 measure.whatevers 具有与该维度行对应的任何数据的聚合。

我只是想看看 2016 年 1 月

我尝试的一切似乎都得到了 1/1/1900 的最小日期值,或者两行的值都是 2016 年 1 月 1 日,或者因为我无法弄清楚而出现错误。

这是我的 mdx 示例:

WITH MEMBER [Measures].[Start] as 
  (
-- min date that the combination of someattribute and hrid have certain 
-- value withing the range of the where clause restriction of january 2016

SELECT { 
[Measures].[Start]
, [Measures].[Whatevers]
} ON COLUMNS
, NON EMPTY { 
[Agent].[HRID].children
* [Agent].[someAtribute].Members
} ON ROWS
FROM [RADM_REPORTING]
WHERE ( 
    [Date].[Date View].[Month].&[201601]
    )

【问题讨论】:

  • “我尝试过的一切” - 请让我们看看您尝试过什么
  • 很抱歉要列出许多不同事物的许多随机细微变化。

标签: date max mdx min


【解决方案1】:

这行得通,但感觉有点像 hack,或者感觉它不够健壮,我对 mdx 不够熟悉,无法进行调用。

WITH MEMBER [Measures].[Start] as 
 filter([Date].[Date View].[Month].&[201601].children, 
 [Measures].[Whatevers]).item(0).membervalue

【讨论】:

  • 这只是硬编码的..[Month].&[201601].,您可以尝试通过EXISTING 关键字进行概括。
  • 好的 - 现在我有 advWrks 来测试想法 - 我已经修改了我的答案 - 为我之前发布的垃圾道歉!
【解决方案2】:

这是一个更普遍的潜在方向:

WITH 
  MEMBER [Measures].[Start] AS 
    Min
    (
      (EXISTING 
        [Date].[Date].[Date].MEMBERS)
     ,IIF
      (
        [Measures].[Internet Sales Amount] = 0
       ,NULL
       ,[Date].[Date].CurrentMember.MemberValue
      )
    ) 
SELECT 
  NON EMPTY 
    {
      [Measures].[Start]
     ,[Measures].[Internet Sales Amount]
    } ON COLUMNS
 ,NON EMPTY 
    [Product].[Product Categories].[Product] ON ROWS
FROM [Adventure Works]
WHERE 
  [Date].[Calendar].[Calendar Year].&[2005];

它给出了以下内容:

【讨论】:

  • ITEM 函数需要一个用于 1 参数的元组集表达式。使用了字符串或数字表达式。
  • 像这样修改会给我 1900-01-01 的每一行 WITH MEMBER [Measures].[Start] as {[Date].[Date View].[Date]}.item(0 ).membervalue
  • 没有产品出现两次具有单独的属性值,如果产品类似于 hrid,则相同维度(产品类别)的某些属性必须更改为“Road-150 Red, 44' 具有价格属性,从 2005 年 6 月 25 日起,价格为 10 美元,从 2005 年 7 月 15 日起,价格为 11 美元,日期范围被过滤为仅显示 2005 年 7 月的销售额,然后正在寻找从 2015 年 7 月 1 日开始,价格为 10 美元,从 2005 年 7 月 15 日开始,价格为 11 美元,价格属性包含在 on rows 集中。
猜你喜欢
  • 2019-12-20
  • 2018-03-12
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多