MDX过滤查询

3

我有一个查询,想要过滤出等于某个特定值的结果。下面的查询可以正常工作...

SELECT NON EMPTY {[Date].[Year Number].Members} ON COLUMNS, 
NON EMPTY CROSSJOIN({[ItemCode].[Item Category].Members}, {[Measures].[Net Sales], [Measures].[Total Cost], [Measures].[Profit]}) ON ROWS  
FROM (SELECT Filter([ItemCode].[Item Category].[Item Category].Members, ([Measures].[Net Sales] = 3440.8)) ON COLUMNS FROM [Sales])

...然而,一个具有不同值的相同查询...

SELECT NON EMPTY {[Date].[Year Number].Members} ON COLUMNS, 
NON EMPTY CROSSJOIN({[ItemCode].[Item Category].Members}, {[Measures].[Net Sales], [Measures].[Total Cost], [Measures].[Profit]}) ON ROWS  
FROM (SELECT Filter([ItemCode].[Item Category].[Item Category].Members, ([Measures].[Net Sales] = 41581.65)) ON COLUMNS FROM [Sales])

...完全不起作用。我知道它们两个都应该正常工作,因为这两个值都存在于立方体中,而且不仅是这个值无法正常工作,还有很多其他的值也是如此,就我所看到的,没有任何规律。


非常混乱?你尝试过不使用NON EMPTY运行查询吗?这是我能想到的唯一解决办法。 - Magnus Smith
1个回答

2
我建议检查[净销售额]的数据类型,如果它是浮点类型(例如Double),那么查找精确值可能无法起作用。即数据库中的41581.65值可能是41581.6500001。
如果您将数据类型更改为固定精度(例如货币),则查询可能会起作用。请参阅此链接以了解货币的众多好处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接