Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
过去12个月内零个月的MDX=过去12个月滚动窗口内零交易月数_Mdx_Ssas 2008 - Fatal编程技术网

过去12个月内零个月的MDX=过去12个月滚动窗口内零交易月数

过去12个月内零个月的MDX=过去12个月滚动窗口内零交易月数,mdx,ssas-2008,Mdx,Ssas 2008,我正在进行MDx查询,从今天开始计算过去12个月内每种产品的零txn。为Adventure准备的MDX查询工作正常,但在Acutal多维数据集上运行的第二个查询工作正常 您能帮我纠正查询或任何需要的过滤器以获得正确的结果(如第一个示例查询)吗 关于冒险作品的第一个示例查询:(工作正常) 关于我的多维数据集的第二个查询: 第一条评论是,在进行计数/筛选时,这是一种更快的模式: WITH MEMBER [Measures].[Months With Zero Sales] AS Su

我正在进行MDx查询,从今天开始计算过去12个月内每种产品的零txn。为Adventure准备的MDX查询工作正常,但在Acutal多维数据集上运行的第二个查询工作正常

您能帮我纠正查询或任何需要的过滤器以获得正确的结果(如第一个示例查询)吗

关于冒险作品的第一个示例查询:(工作正常) 关于我的多维数据集的第二个查询:
第一条评论是,在进行计数/筛选时,这是一种更快的模式:

WITH 
  MEMBER [Measures].[Months With Zero Sales] AS 
    Sum
    (
      Descendants
      (
        {
            [Date].[Calendar].[Month].&[2008]&[1].Lag(12)
          : 
            [Date].[Calendar].[Month].&[2008]&[1]
        }
       ,[Date].[Calendar].[Month]
      )
     ,IIF
      (
        [Measures].[Sales Amount] = 0
       ,1
       ,null
      )
    ) 
SELECT 
  {[Measures].[Months With Zero Sales]} ON 0
 ,[Product].[Product Model Lines].[Product Line].MEMBERS ON 1
FROM [Adventure Works];
基于这一更有效的方法,是否进行了以下工作

WITH 
  MEMBER [Measures].[Zero Months in last 12] AS 
    Sum
    (
      Descendants
      (
        {
            [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1].Lag(12)
          : 
            [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1]
        }
       ,[Settlement Date].[Calendar].[Settlement Calendar Month]
      )
     ,IIF
      (
        [Measures].[Transaction Count] = 0
       ,1
       ,0
      )
    ) 
SELECT 
  {
    [Measures].[Transaction Count]
   ,[Measures].[Zero Months in last 12]
  } ON 0
 ,[Terminal].[terminal ID].MEMBERS ON 1
FROM [cubetxn];
如果仍然存在问题,那么为什么不重新构建脚本,以便手动检查预期内容。因此,对于AdvWrks脚本,我将运行以下命令,以便我能够确认6是正确的:

SELECT 
  {[Measures].[Sales Amount]} ON 0
 ,
    Descendants
    (
      {
          [Date].[Calendar].[Month].&[2008]&[1].Lag(12)
        : 
          [Date].[Calendar].[Month].&[2008]&[1]
      }
     ,[Date].[Calendar].[Month]
    )
  * 
    [Product].[Product Model Lines].[Product Line].MEMBERS ON 1
FROM [Adventure Works];
那么,对于您的多维数据集,下面返回什么

SELECT 
  {[Measures].[Transaction Count]} ON 0
 ,
    Descendants
    (
      {
          [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1].Lag(12)
        : 
          [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1]
      }
     ,[Settlement Date].[Calendar].[Settlement Calendar Month]
    )
  * 
    [Terminal].[terminal ID].MEMBERS ON 1
FROM [cubetxn];
问题您想知道连续几个月没有交易的实例计数吗。 或者,您是否需要连续无交易的月数计数

我想说的是,1月、3月、6月、7月、8月、10月、11月在过去的12个月中没有交易 根据案例1:答案应该是2 根据案例2:答案应该是5

将根据您的澄清更新我的答案

SELECT 
{Measures.CntAllTranSundays, Measures.CntDaysYTD, Measures.CntTranYTD, Measures.CntZeroTransactingMonths} ON 0
FROM [YourCube]
where 
[date].[date].[date].&[02/28/2015]

由于我们无法执行您的查询,也许您可以告诉我们它返回了什么以及您希望它返回什么。你的问题中可能没有足够的信息,除非有人只是想对问题进行一些猜测。关于您的模型的更多信息(查询中使用的度量值和维度属性也会很有帮助。它返回的结果如下:查询结果示例有问题,我希望如果事务计数为(null)那么“过去12个月内为零”应该显示1。但是,事务计数是过去12个月的txn之和,所以有可能是空的txn月,我想得到txn之和所在的月份计数empty@Niel好问题。不确定为什么有人投票关闭。感谢使用AdvWrksThis查询不返回任何内容,只返回空白列名称“Transaction Count”选择{[Measures].[Transaction Count]}在0上,子代({[结算日期].[日历].[结算日历月].[2014]和[1]。滞后(12):[结算日期].[结算日历月].[结算日历月].[2014]和[1]}[结算日期].[日历].[结算日历月]*[终端]。[terminal ID].1上的成员来自[cubetxn];您提供的第一个查询给出了两列[Transaction Count]和[Zero Monters in last 12]的结果,但同样,即使TrnAction Count sum为(null),[Zero Monters in last 12]显示(null),我希望在过去12个所有终端504112053(null)中有1个或更多的Count Transaction Count Zero MontersA1001138832(空)A10002(空)(空)A100385762(空)A10004(空)(空)A10005(空)(空)A10006 23270(空)@Niel请不要在帖子的评论中添加脚本/结果?!如果添加其他脚本/结果并对原始帖子进行格式良好的编辑,我们会更轻松。很抱歉,我找不到在原始问题中添加这些回答的方法。请尝试now@Niel也许你不能编辑你的名誉点:我是不确定。应该有一个“编辑”按钮在你最初的问题下面。不管怎样-如果你运行我文章中的最后一个脚本会发生什么?感谢所有的回复Sourav。对于零个月,我需要连续几个月零事务的实例数。如果你能用as MDX给我所有上述查询,我将非常感激。我想在T-SQL过程中获取这些结果,以建立一份复杂的报告。如果您能提供帮助,我还需要一个问题,我需要WTD和MTD。如果我的报告在3月23日运行,我应该得到每个产品的最后一周txn总和。同样,MTD指的是3月1日到23日的每个产品的txn计数product@Niel-那么,根据我的例子,答案是2还是5?顺便问一下,你的计数正确吗现在?这将给我继续下去所需的信心;-)对不起,苏拉夫,我今天将运行这些查询并给出结果。根据您的示例,答案将是2Hi苏拉夫,请您为我提供连续几个月的零计数MDx查询。我需要MDx查询。
SELECT 
  {[Measures].[Transaction Count]} ON 0
 ,
    Descendants
    (
      {
          [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1].Lag(12)
        : 
          [Settlement Date].[Calendar].[Settlement Calendar Month].&[2014]&[1]
      }
     ,[Settlement Date].[Calendar].[Settlement Calendar Month]
    )
  * 
    [Terminal].[terminal ID].MEMBERS ON 1
FROM [cubetxn];
//Total Transactions count Weekend Sunday (i’ve date dimesion which holds day_in_week=’Sun’ for respective dates)

WITH SET AllTranSundays as
EXISTS(DATE.DATE.DATE.MEMBERS, DATE.DATE.day_in_week.&[Sun], "Sales")
//Count of all sundays which had transactions. 
MEMBER Measures.CntAllTranSundays AS
COUNT(AllTranSundays)

//YTD Days = Count of days within calendar year to date

MEMBER Measures.CntDaysYTD as 
COUNT(DESCENDANTS(ANCESTOR([DATE].[date].CURRENTMEMBER, 
3), 3).item(0).item(0) 
: [DATE].[date].CURRENTMEMBER)

//YTD Transactions = Transaction count year to date

MEMBER Measures.CntTranYTD as 
COUNT(
EXISTS(
{DESCENDANTS(ANCESTOR([DATE].[date].CURRENTMEMBER, 
3), 3).item(0).item(0) 
: [DATE].[date].CURRENTMEMBER}, , "Sales"
)

//Zero months in last 12 = Number of zero transacting months in the last 12 months rolling window

MEMBER Measures.CntZeroTransactingMonths as
COUNT(
    {ANCESTOR([DATE].[date].CURRENTMEMBER, 1).ITEM(0).LAG(12) : ANCESTOR([DATE].[date].CURRENTMEMBER, 1).ITEM(0)}
    -
    EXISTS({ANCESTOR([DATE].[date].CURRENTMEMBER, 1).ITEM(0).LAG(12) : ANCESTOR([DATE].[date].CURRENTMEMBER, 1).ITEM(0)}
    , , 
    "Sales")
)

//Consecutive zero months = Number of consecutive zero transacting months in last 12 months rolling window
SELECT 
{Measures.CntAllTranSundays, Measures.CntDaysYTD, Measures.CntTranYTD, Measures.CntZeroTransactingMonths} ON 0
FROM [YourCube]
where 
[date].[date].[date].&[02/28/2015]