我使用报表选项卡->组排序专家-> top n来获取前n条记录,但我在报表页脚中获取所有记录的值的总和。
我只想要前n条记录的总和...
在下图中,我选择了前3条记录,但它给出了所有记录的总和。

发布于 2017-07-24 22:34:40
组排序专家(以及记录排序专家)会在计算出汇总后干预您的最终结果。它无法过滤和删除行,就像SQL的ORDER BY子句不能影响SELECT的计数结果一样(这是WHERE子句的作业)。因此,您的汇总将始终针对详细信息部分的所有行进行计算,当然,也会针对所有组和进行计算。
如果您有一个特定的方法来排除特定的行,以便显示适当的总和,您可以使用Select Expert of 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 #TEMPhttps://stackoverflow.com/questions/35146245
复制相似问题