【问题标题】:Cannot use order by in this select?不能在此选择中使用 order by?
【发布时间】:2012-06-08 08:19:40
【问题描述】:

我有这个问题..

SELECT ClassId, Sum(TeachersCount) as NumCount
FROM ClassSubject 
GROUP BY ClassId 
ORDER BY NumCount

但是当我运行它时,访问会弹出一个框,询问我 NumCount 的值?但这不是一个参数,这是..这是可以教该课程的教师总数,需要计算。那么为什么 access 要求我提供它的 (NumCount's) 值呢?

我想要的是计算班级中的教师人数并通过增加教师人数的值来排序,我认为这就是我的查询所做的,但为什么它要求我提供 NumCount 的值?还有一件事,如果我删除这个ORDER BY 子句,它运行良好,而不问我NumCount 的值?那么有什么问题呢?

【问题讨论】:

    标签: sql ms-access select


    【解决方案1】:

    你需要:

    SELECT ClassId, Sum(TeachersCount) as NumCount 
    FROM ClassSubject 
    GROUP BY ClassId 
    ORDER BY Sum(TeachersCount)
    

    您也可以按序数排序,在本例中为 2:

    ORDER BY 2
    

    【讨论】:

    • 为什么我不能使用ORDER BY NumCount
    • 您不能在 MS Access (Jet/ACE) SQL 中按别名排序。
    • @pOcHa 真的吗?这令人惊讶,但无论如何,如果你这么说,也正如 Remou 评论的那样,我不能在 MS Access 中做到这一点(使用列的别名)但我可以在 SQL Server 2008 中做到这一点吗?
    • @Razort4x:所有三种方法(按相同的SUM() 表达式排序或通过别名或SELECT 子句中的序号引用ORDER BY 中的列)都可以在SQL 中工作服务器。
    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    相关资源
    最近更新 更多