当我使用SELECT TOP 10进行ms访问报告时,如何获得真实总数(没有TOP)?

时间:2013-06-07 11:20:39

标签: sql ms-access report

当我做报告时,我使用变量

  

=总和([卖])

,这里的结果是TOP 10的总和。我的问题是如何显示所有元素的总和结果,如TOP 10不存在?

SQL示例:

 Select top 10 name, cust, sell from sales

在实践中,查询是怪异的,大而脏的:

SELECT top 125 COD_FAM, NOME_FAM, ID_VENDEDOR, NOME_VENDEDOR, ID_ZONA, CONTA_CLI, SUB_CONTA_CLI, NOME_CLI, SUM(VENDA1) AS VENDAS1, SUM(VENDA2) AS VENDAS2, ROUND(IIF(SUM(VENDA1)=0, 9999, ((SUM(VENDA2)-SUM(VENDA1)))/abs(SUM(VENDA1))*100), 2) AS PER_DIFF   FROM( SELECT quarter, month, COD_FAM, NOME_FAM, ID_VENDEDOR, NOME_VENDEDOR, ID_ZONA, CONTA_CLI, SUB_CONTA_CLI, NOME_CLI, VENDA AS VENDA1, 0 AS VENDA2 FROM STKQRY_VENDAS07_FAM_MONTH_VND_CLI_F1 WHERE year = '2012' AND Month between '00' and '05' UNION ALL SELECT quarter, month, COD_FAM, NOME_FAM, ID_VENDEDOR, NOME_VENDEDOR, ID_ZONA, CONTA_CLI, SUB_CONTA_CLI, NOME_CLI, 0 AS VENDA1, VENDA AS VENDA2 FROM STKQRY_VENDAS07_FAM_MONTH_VND_CLI_F1 WHERE year = '2013' AND Month between '00' and '05'  ) GROUP BY COD_FAM, NOME_FAM, ID_VENDEDOR, NOME_VENDEDOR, ID_ZONA, CONTA_CLI, SUB_CONTA_CLI, NOME_CLI HAVING (SUM(VENDA1) > 1000 OR SUM(VENDA2) > 1000) ORDER BY vendas2 desc

1 个答案:

答案 0 :(得分:0)

您需要加入2个查询,例如

SELECT TOP 10 Company, SUM(Sales) from MyTable Group By Company   --Query to get data for TOP 10
Union All
SELECT 'Grand Total', SUM(Sales) from MyTable  --Query to get the Grand total