【问题标题】:Access Query to return top 5 and sum all others访问查询以返回前 5 名并总结所有其他人
【发布时间】:2015-08-14 16:59:49
【问题描述】:

我找到了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; 

【问题讨论】:

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


    【解决方案1】:

    查询的存在部分中的选择缺少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)
    

    【讨论】:

    • 感谢您的帮助。但是,当我现在使用更新的语句运行查询时,Access 会崩溃。它只是关闭。 SQL 没有错误消息。知道为什么会发生这种情况吗?我在原始帖子中添加了更新
    猜你喜欢
    • 2016-08-03
    • 2017-05-24
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2015-02-14
    • 2010-11-13
    相关资源
    最近更新 更多