我有一个日期维度和一个事实表。我有两个措施:
WorkOrdersCount:=
count(
FactWorkOrderLifeCycle[Clientsid]
)
和
WorkOrdersLastYearCount:=
CALCULATE(
count(FactWorkOrderLifeCycle[Clientsid]),
SAMEPERIODLASTYEAR(DimDate[FullDate])
)
WorkOrdersCount很简单,工作正常。我认为WorkOrdersLastYearCount也很简单,但我现在意识到我不理解SAMEPERIODLASTYEAR()。
我的日期维度有一个DateSID列,其中包含日期的整数表示形式YYYYMMDD。它有两个记录保存行,SID为-1和-2,用于未知和TBD日期。我只在此解决方案中使用-1行。数据存储在SQL Server表中,FullDate列是“日期”类型。实际值是1900-01-01。
我的事实,FactWorkOrderLifecycle,有一个名为InvoicedDateSID的字段,它可以有一个空值,我用-1替换。
在Visual Studio中或处理olap时没有引发任何错误,但在引用数据透视表中的列时,我收到以下错误:
错误 - 计算中止:计算中的计算错误 'FactWorkOrderLifeCycle'[WorkOrdersLastYearCount]:无效的数字 遇到了日期值的表示。
我尝试过的事情(并非一切都有意义):
我是DAX菜鸟,我不知道如何解决这个问题。任何帮助表示赞赏!
答案 0 :(得分:0)
确保您的日历表确实使用了日期数据类型。 删除日期的任何时间部分。 确保您的日历表中没有空白和重复。 确保您使用的是数据透视表中日历表中的字段,而不是数据表中与日期相关的字段。