访问查询以返回前5名并汇总所有其他人

时间:2015-08-12 14:10:18

标签: sql ms-access ms-access-2010

我发现了answersquestions非常similar的各种例子。出于某种原因,我无法让我的查询工作。

我做错了什么?

我希望返回前5个结果,最后一行显示的所有其他行为“其他”。

这是我的SQL语法:

SELECT TOP 5 tbl_MopoRohdaten.rating_clir, Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight
FROM tbl_MopoRohdaten
WHERE tbl_MopoRohdaten.rating_clir 
NOT IN 
    (EXISTS(SELECT TOP 5 tbl_MopoRohdaten.rating_clir, Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight FROM  tbl_MopoRohdaten))
GROUP BY tbl_MopoRohdaten.rating_clir;

当我运行它时,我收到一条错误声明告诉我:

  

您尝试执行不包含指定的查询   表达式'rating_clir'作为聚合函数的一部分。

更新

我调整了代码以反映Balnian的输入,但是现在Access(整个应用程序)只要我尝试运行它就会关闭并崩溃!

SELECT TOP 5 tbl_MopoRohdaten.rating_clir, Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight
FROM tbl_MopoRohdaten
WHERE tbl_MopoRohdaten.rating_clir 
NOT IN 
    (EXISTS(SELECT TOP 5 tbl_MopoRohdaten.rating_clir,Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight 
FROM   tbl_MopoRohdaten GROUP BY y tbl_MopoRohdaten.rating_clir))
GROUP BY tbl_MopoRohdaten.rating_clir; 

1 个答案:

答案 0 :(得分:0)

您查询的现有部分中的select缺少必需的group by,因为您在查询中返回了SUM()和普通列

EXISTS(SELECT TOP 5 tbl_MopoRohdaten.rating_clir,
Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight FROM 
tbl_MopoRohdaten)

应该(未经测试)

EXISTS(SELECT TOP 5 tbl_MopoRohdaten.rating_clir,Sum(tbl_MopoRohdaten.c2_eop_weight) AS SumOfc2_eop_weight 
FROM   tbl_MopoRohdaten group by tbl_MopoRohdaten.rating_clir)