[英]How to order (sort) formatted numbers in an Access Union Query (SQL)
我在Access中创建了以下联合查询,但是在按我希望的方式格式化“每小时”值时遇到麻烦。 因为Emp_Police表的查询不返回任何记录(由于Like“ SP *”筛选器),所以出现以下错误:
“ ORDER BY表达式(每小时)包含查询未选择的字段。只有第一个查询中请求的那些字段才能包含在ORDER BY表达式中。”
当字段未设置格式但字段未设置格式时,ORDER BY表达式将起作用。 我也尝试过ORDER BY表达式
ORDER BY Format([Hourly],"Standard") DESC
但这似乎也不起作用。
SELECT Emp_Norm.UnionCode, Emp_Norm.EMPNAME, Format([Hourly],"Standard") AS Expr1, Format([Salary],"Standard") AS Expr2
FROM Emp_Norm
WHERE (((Emp_Norm.UnionCode) Like "SP*"))
UNION
SELECT Emp_Police.UnionCode, Emp_Police.EMPNAME, Format([Hourly],"Standard") AS Expr1, Format([Salary],"Standard") AS Expr2
FROM Emp_Police
WHERE (((Emp_Police.UnionCode) Like "SP*"))
ORDER BY Hourly DESC;
作为一个较小的问题,格式化后的数字左对齐,就好像它们是文本,数字应右对齐一样。
您可以在子查询中包括“ Hourly
”:
SELECT Emp_Norm.UnionCode, Emp_Norm.EMPNAME, Format([Hourly],"Standard") AS Expr1, Format([Salary],"Standard") AS Expr2,
Hourly
FROM Emp_Norm
WHERE (((Emp_Norm.UnionCode) Like "SP*"))
UNION
SELECT Emp_Police.UnionCode, Emp_Police.EMPNAME, Format([Hourly],"Standard") AS Expr1, Format([Salary],"Standard") AS Expr2,
Hourly
FROM Emp_Police
WHERE (((Emp_Police.UnionCode) Like "SP*"))
ORDER BY Hourly DESC;
在MS Access中,需要选择ORDER BY
用于UNION
/ UNION ALL
的列。
将最后一行更改为
ORDER BY Expr1 DESC
作品。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.