Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
Sql server 带有日期维度的SSAS 2012 DAX SamePeriodLastYear()_Sql Server_Ssas_Dax - Fatal编程技术网

Sql server 带有日期维度的SSAS 2012 DAX SamePeriodLastYear()

Sql server 带有日期维度的SSAS 2012 DAX SamePeriodLastYear(),sql-server,ssas,dax,Sql Server,Ssas,Dax,我有一个日期维度和一个事实表。我有两项措施: WorkOrdersCount:= count( FactWorkOrderLifeCycle[Clientsid] ) 及 WorkOrdersCount很简单,工作正常。我原以为去年的工单计数也很简单,但现在我意识到我不理解去年的相同周期 My date维度有一个DateSID列,其中包含日期的整数表示形式YYYYMMDD。对于未知日期和待定日期,它有两个SID为-1和-2的记录保留行。在这个解决方案中,我只使用-1行。数据存储

我有一个日期维度和一个事实表。我有两项措施:

WorkOrdersCount:=
  count(
    FactWorkOrderLifeCycle[Clientsid]
  )

WorkOrdersCount很简单,工作正常。我原以为去年的工单计数也很简单,但现在我意识到我不理解去年的相同周期

My date维度有一个DateSID列,其中包含日期的整数表示形式YYYYMMDD。对于未知日期和待定日期,它有两个SID为-1和-2的记录保留行。在这个解决方案中,我只使用-1行。数据存储在SQL Server表中,FullDate列是日期类型。实际值为1900-01-01

我的事实FactWorkOrderLifecycle有一个名为InvoicedDateSID的字段,该字段可以有一个空值,我将其替换为-1

Visual Studio中或处理olap时不会引发错误,但在引用数据透视表中的列时,我会遇到以下错误:

错误-计算中止:度量值中的计算错误 “FactWorkOrderLifeCycle”[WorkOrdersLastYearCount]:无效数字 遇到日期值的表示形式

我尝试过的事情并不都有意义:

将SID值更改为正整数 当我看到DAX日期可能从1900-03-01开始时,将dimdate中的日期值更改为9999-12-31,而不是1900-01-01 首先将其他尺寸添加到轴,以查看公式计算是否正确。
我是个无赖,我不知道如何解决这个问题。感谢您的帮助

确保您的日历表确实使用了日期数据类型。 删除日期中的任何时间部分。 确保日历表中没有空白和重复项。
确保您使用的是数据透视上日历表中的字段,而不是数据表中与日期相关的字段。

听起来您的FullDate列中还有一些其他值,如1、2、待定或未知。SAMEPERIODLASTYEAR正在尝试解析与日期类型匹配的值。听起来您的DimDate表中有一个值的格式不是它可以解析的格式。因此,我将日期改为2050-12-31,而不是9999-12-31或1900-01-01,当我使用“在Excel中分析”选项时,一切都开始工作。这是在我们的开发服务器上运行的,同样,它工作正常。但当我部署到dev时,仍然会遇到相同的错误。我想现在出于不同的原因,所以我可能会提出另一个问题。是的,我认为9999-12-31和1900-01-01超出了范围
WorkOrdersLastYearCount:=
  CALCULATE(
    count(FactWorkOrderLifeCycle[Clientsid]),
    SAMEPERIODLASTYEAR(DimDate[FullDate])
  )