将日期更改为数字

时间:2014-10-27 22:39:37

标签: ssas mdx olap

这是剧本:

SELECT 
  {[Measures].[Internet Order Count]} ON COLUMNS
 ,Descendants
  (
    [Date].[Calendar].[Month].[August 2006]
   ,[Date].[Calendar].[Date]
   ,self
  ) ON ROWS
FROM [Adventure Works];

它返回:

enter image description here

我可以更改脚本,使其不是日期而是返回从0或1开始的整数,即第一个为1,第二个为2等。

这会增加一个计数器,但我想摆脱日期栏:

WITH 
  MEMBER [Measures].[r] AS 
    Rank
    (
      [Date].[Calendar].CurrentMember
     ,[Date].[Calendar].[Month].[August 2006].Children
    ) 
SELECT 
  {
    [Measures].[r]
   ,[Measures].[Internet Order Count]
  } ON COLUMNS
 ,[Date].[Calendar].[Month].[August 2006].Children ON ROWS
FROM [Adventure Works];

1 个答案:

答案 0 :(得分:1)

这很难,因为你在行和列上的内容是成员元组的集合,无论是物理元素还是计算元素。

你可以做的当然是:

WITH Member [Date].[Calendar].[1] AS [Date].[Calendar].[Date].&[20060801]
     Member [Date].[Calendar].[2] AS [Date].[Calendar].[Date].&[20060802]
     ...
     Member [Date].[Calendar].[31] AS [Date].[Calendar].[Date].&[20060831]
SELECT 
  {
   [Measures].[Internet Order Count]
  } ON COLUMNS
 ,
 {
 [Date].[Calendar].[1],
 [Date].[Calendar].[2],
 ...
 [Date].[Calendar].[31]
 }
 ON ROWS
FROM [Adventure Works]

如果您使用工具生成查询,这可能是可行的。

但是,在这种情况下,我通常会像第二个查询一样保留查询,只是忽略客户端工具中的行标题。