excel - SSAS 日期在 Excel 筛选器中不起作用

标签 excel date sql-server-2008-r2 ssas

在我的 SSAS 多维数据集中,我有一个包含 6 个日期字段的维度。它们都以相同的方式定义,其中 Key 字段是日期类型,Name 字段是 char(10),格式为 yyyy-mm-dd。

当我将这些字段包含在 Excel 数据透视表中时,除了一个字段外,它们都工作正常。该字段显示正确,但在过滤时行为不正确。特别是,指定 Between 过滤器始终返回零行。与大于过滤器相同。 开头为 效果很好。

再次强调,这只发生在六个日期字段之一。但据我所知,所有六个日期字段的配置都是相同的。什么类型的错误可能导致这种情况?

编辑

使用 SQLServer Profiler,我可以看到从 Excel 生成的 MDX 对于有效日期和无效日期是相同的(当然,字段名称发生变化除外)。如果我将数据透视表限制为单个日期并添加 Between 过滤器,则 MDX 为:

SELECT NON EMPTY Hierarchize({DrilldownLevel({[Participation Program].[Participation Start Date].[All]},,,INCLUDE_CALC_MEMBERS)}) 
    DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS  
FROM (SELECT Filter([Participation Program].[Participation Start Date].[Participation Start Date].AllMembers, 
                   ([Participation Program].[Participation Start Date].CurrentMember.member_caption>="1985" 
                    AND [Participation Program].[Participation Start Date].CurrentMember.member_caption<="1990")) ON COLUMNS  
        FROM [Compass3]) 
WHERE ([Child].[Child is Handicapped].&[T],[Measures].[Child Count]) CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

这会返回 [参与开始日期] 的正确结果,但如果我对 [参与停止日期] 执行相同的操作,则会返回 0 个结果。所以这是SSAS端的问题而不是Excel端的问题。但我仍然看不出两个日期在多维数据集中的配置方式有什么区别,并且我 100% 确定存在应与指定日期范围匹配的数据。

最佳答案

我会将这些属性的键更改为 YYYYMMDD 格式的日期数字表示形式。我将通过 SQL View 来实现此目的,其中我将使用 CONVERT 函数。

我根本不会在 SSAS 中使用日期数据类型,因为它的内部表示是模糊/不确定的。

关于excel - SSAS 日期在 Excel 筛选器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361739/

相关文章:

Excel 工作簿连接字段 "Last refreshed"始终为空

java - LinkedHashMap 中以日期为 keySet 的平均值(按星期几)

php - 如何将从 date_parse 返回的日期数组转换回日期字符串

python - 安排运行脚本的时间和日期

sql-server - SQL Server 查询 XML xpath 空命名空间

sql-server - 在 SQL 上将行转换为字符串

c# - 防止非执行 SQL 中的 SQL 注入(inject)

excel - 获取包含代码的 Excel 工作表的名称

vba - 如果单元格不是四个确定值之一,则复制整行

VBA:Recordset.Fields "Object doesn' t 支持此属性”