报表设计器 - 具有多个数据集的Sum内的Nest IIF

时间:2012-12-13 15:46:28

标签: reporting-services

虽然这个问题的各个部分有很多代码示例,但作为Report Designer的新手,我无法获得正确的语法。

我有一个文本字段,我希望从三个DataSet中的一个显示“持续时间”的SUM,这由同一个DataSet中具有值“H”的另一个字段确定。

所以把它分成几部分,这可以在ReportDataset中总结所有小时。

=Sum((Fields!RegHrs.Value + Fields!OvtHrs.Value),"ReportDataset")

现在,不知何故,我需要将其嵌套在IIF中。当BillStatus =“H”时,我需要将SUM表达式作为IIF的“真实”返回。

IIF(Fields!BillStatus.Value = "H",true,false)

我似乎无法弄清楚如何将IIF和SUM结合起来,以便它们从“ReportDataset”中提取并在语法上是正确的。

我一直在尝试各种各样的排列:

=Sum(IIF(Fields!BillStatus.Value = "H",((Fields!RegHrs.Value + Fields!OvtHrs.Value),"ReportDataset"),0))

任何指针?


新信息:

以下报告语法正确,但返回值为0。

=Sum(IIF(Fields!BillStatus.Value = "H", (Fields!RegHrs.Value + Fields!OvtHrs.Value),0),"ReportDataset")

应该有数百小时的回归。

2 个答案:

答案 0 :(得分:1)

您可以使用SQL在数据集中执行此操作吗?如果是这样,请使用以下内容:

SELECT CASE WHEN BillStatus = 'H' THEN RegHrs + OvtHrs END AS HeldHours
FROM MyTable

然后您需要做的就是总结这个字段:

=Sum(Fields!HeldHours.Value, "ReportDataSet")

答案 1 :(得分:1)

尝试嵌套总和:

=Sum(IIF(Fields!BillStatus.Value = "H", Sum(Fields!RegHrs.Value + Fields!OvtHrs.Value,"ReportDataset"),0),"ReportDataset")

或者:

=IIF(Fields!BillStatus.Value = "H", Sum(Fields!RegHrs.Value + Fields!OvtHrs.Value,"ReportDataset"),0)