Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Reporting services SSRS-我想为计算添加一个过滤表达式_Reporting Services_Ssrs 2008 - Fatal编程技术网

Reporting services SSRS-我想为计算添加一个过滤表达式

Reporting services SSRS-我想为计算添加一个过滤表达式,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,-- 我想添加一个基于某个值计算值的表达式。我有一个名为DSSPend的数据集,它必须包含两列,一列是区域,另一列是支出。现在,我想根据某些面积值计算支出。 我试过类似的方法,但似乎不起作用 =Iif((Fields!Area.Value, "DSSSpend") IN ('New York','Miami','Texas') = SUM(Fields!Spend.Value, "DSSSpend"), 0) SSRS表达式中没有IN运算符。您可以通过使用或来实现相同的目标 此外,您的总和合计

--

我想添加一个基于某个值计算值的表达式。我有一个名为DSSPend的数据集,它必须包含两列,一列是区域,另一列是支出。现在,我想根据某些面积值计算支出。 我试过类似的方法,但似乎不起作用

=Iif((Fields!Area.Value, "DSSSpend") IN ('New York','Miami','Texas') = SUM(Fields!Spend.Value, "DSSSpend"), 0)
SSRS表达式中没有IN运算符。您可以通过使用或来实现相同的目标

此外,您的总和合计需要超出IIF。表达式将只计算第一条记录,而不是遍历数据集中的每条记录,然后进行聚合。我在上面写的表达式遍历整个数据集,根据区域的值,求花费字段中的值或0的和


更新:如果您之前遇到错误,可能是因为它没有将您的金额视为数字。通过显式地转换它们,您应该可以绕过这个问题。

您好,谢谢您的回复,但是当我按照建议运行此查询时,我遇到了一个错误。我已经确定我的面积值完全符合规定,拼写正确。错误是什么?这是您获得正确答案所需的模式,因此您需要发布更多信息,以便我能够判断出问题所在。@user1546143此问题可能是由于数据类型造成的。我在上面的表达式中添加了CDec(),它可以很好地处理测试数据。如果您需要整数而不是小数,请将其更改为CInt.Wonderfull!非常感谢您的帮助:)
=sum(iif((Fields!Area.Value = "New York" or Fields!Area.Value = "Miami" or Fields!Area.Value = "Texas"), 
CDec(Fields!Spend.Value), CDec(0)))