【问题标题】:How to sort multiple columns in a multitable query?如何对多表查询中的多个列进行排序?
【发布时间】:2014-04-07 01:46:12
【问题描述】:

我有一个关于如何发现基于员工性别的薪酬歧视的问题。我有 MS Acess 2007,必须使用 SQL 查询来解决问题

请记住,这是在我将 3 个表连接到一个多表查询之后。在此查询中,每当我想使用例如ORDER BY Salary 对任何列进行排序时,它都会给我一个错误标志:

Syntax error (missing operator) in query expression 'Salary'
WHERE JobClass.JobClassID = Employees.JobClassID 
AND Department.DepartmentID = Employees.DepartmentID'.

我想尝试对查询中的多个列进行排序。

这里是总共多表查询代码:

SELECT JobClass.JobClassID, JobClassName, Department.DepartmentID, 
       DepartmentName, LastName, FirstName, Title, Sex, Years, Salary
FROM  JobClass, Employees, Department
ORDER BY 'Salary'
WHERE JobClass.JobClassID = Employees.JobClassID AND Department.DepartmentID = Employees.DepartmentID;

【问题讨论】:

  • order by 应该在where 子句之后
  • 并从 ORDER BY 'Salary' 中删除 ' '

标签: sql sorting ms-access multiple-columns multi-table


【解决方案1】:

Order by Clause 应该在 where 子句之后

这样试试

SELECT JobClass.JobClassID, JobClassName, Department.DepartmentID, 
       DepartmentName, LastName, FirstName, Title, Sex, Years, Salary
FROM  JobClass, Employees, Department
WHERE JobClass.JobClassID = Employees.JobClassID AND Department.DepartmentID = Employees.DepartmentID
ORDER BY Salary

选择语法

SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, …]]}     
FROM tableexpression [, …] [IN externaldatabase]     
[WHERE… ]    
[GROUP BY… ]     
[HAVING… ]     
[ORDER BY… ]     
[WITH OWNERACCESS OPTION]

【讨论】:

    【解决方案2】:

    除非 Access '07 完全无视标准 SQL(我认为不会),否则您的 SQL 语法是关闭的。

    而不是将ORDER BY之前放在WHERE子句之前,它应该放在WHERE之后

    【讨论】:

    • 嗯,SQL中没有WHILE子句。
    • 哦,对不起,在哪里。呵呵。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2013-01-24
    • 2021-09-19
    相关资源
    最近更新 更多