SQL Server 2008 R2,使用 BIDS 设计报表。
我有一张桌子,我试图只显示某一行。也许有更好的方法可以做到这一点,但是我遇到了过滤器表达式的错误,无论我如何完成我的初始任务,我都想了解过滤。
我从过滤器表达式开始(设置为“整数”):
RowNumber(Nothing) = 1
这给出了错误:
Cannot compare data of types System.String and System.Int32.
我发现解决方案是将 1 更改为“=1”,因为 1 被评估为字符串。
所以我有:
RowNumber(Nothing) = =1
这没有改变,我得到了同样的错误。
然后我尝试对表达式的第一部分执行此操作:
=RowNumber(Nothing) = =1
这将错误更改为部署问题(仍在构建,令人沮丧):
Error pvInvalidDefinition : The definition of the report '/ReportName' is invalid.
然后我尝试在 RowNumber 上使用 CInt:CInt(RowNumber(Nothing) = =1
然后我可以部署它,但错误只是变回第一个:
Cannot compare data of types System.String and System.Int32.
似乎无论我在这里尝试什么,我要么无法部署报告,要么收到错误,我正在将字符串与 int 进行比较。
RowNumber 返回一个整数,所以看起来应该可以。我尝试使用数据集的名称代替“Nothing”,但这并没有改变我所看到的。
我意识到有很多方法可以解决我最初的问题,但我很好奇为什么过滤器表达式无效。