如何在多任务查询中对多列进行排序



我有一个关于如何发现基于员工性别的薪酬歧视的问题。我有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 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]

除非Access'07完全无视标准SQL(我认为它没有),否则您的SQL语法将关闭。

与其将ORDER BY放在WHERE子句之前,不如将其放在WHERE之后。

最新更新