0

我有桌子=>

Main Table  : MT
================
PK SPK Name D1 
==============
1, 0, XYZ, 0
1, 1, A, 99
1, 2, B, 88
1, 3, C, 77
2, 0, NULL, 0
2, 1, NULL, 99
2, 2, Z, 88

现在,数据库和报表查看器都准确地显示了上述模式。对于 SPK=0 的每个 PK,我希望第一行中的 D1 总和。要在报表查看器中显示 D1 字段,我尝试了这个

=IIF(Fields!SPK.Value=0,SUM(Fields!D1.Value),Fields!D1.Value)

但我在这里错了。在报告查看器中,我在显示的表格上方也得到了相同的结果。我想要第一行中每个 PK 的 SPK 为 0 的所有值的总和。但我没有得到第一行作为总计,其中 SPK=0。此外,D1 始终为 0,其中 SPK=0 来自我要显示 SUM 的数据库中的哪一行。

有什么方法可以在第一行获得 D1 的 SUM 而不是 SPK=0 的 0?

4

1 回答 1

2

您可以在查询中获得 d1 的总和,然后在报告中使用

SELECT PK, SPK, NAME, CASE WHEN SPK = 0 THEN SUM(D1) OVER(PARTITION BY PK) ELSE D1 END AS D1 MT 
于 2013-11-02T04:27:12.303 回答