如何计算水晶报告中我的前n个记录的总和?

时间:2016-02-02 06:09:30

标签: vb.net crystal-reports-8.5

我正在使用报告标签 - >组排序专家 - >前n个获得前n个记录,但我在所有记录的报告页脚中得到了值的总和

我只需要前n个记录的值总和...

在下图中,我选择了前3个记录,但它给出了所有记录的总和。   enter image description here

1 个答案:

答案 0 :(得分:0)

在计算总摘要后,群组排序专家(以及记录排序专家)会干预您的最终结果。它无法过滤和删除行,就像SQL的ORDER BY子句不能影响SELECT的计数结果一样(这是WHERE子句的作业)。因此,您的摘要将始终针对您的详细信息部分的所有行进行计算,当然也适用于您的所有群组总和。

如果您想要以特定方式排除特定行以显示相应的总和,则可以使用“选择Crystal Reports专家”来删除行。

或者(我相信这是最好的方法),我会在SQL命令中进行所有必要的计算,然后我只向报告发送前3组的总和(然后你可以通过简单的方式得到你想要的东西)这3条记录的总摘要)

像这样的东西

CREATE TABLE #TEMP
(
 DEP_NAME varchar(50),
 MINVAL int,
 RMAVAL int,
 NETVAL int
)

INSERT INTO #TEMP
 SELECT TOP 3 
 T.DEP_NAME ,T.MINVAL,T.RMAVAL,T.NETVAL 
 FROM
 (SELECT DEP_NAME AS DEP_NAME,SUM(MINVAL) AS MINVAL,SUM(RMAVAL) AS 
RMAVAL,SUM(NETVAL) AS NETVAL 
 FROM YOURTABLE
 GROUP BY DEP_NAME) AS T
ORDER BY MINVAL DESC

SELECT * FROM #TEMP