我已经在Access中创建了下面的Union查询,但是当“时”值按我希望的方式格式化时,我在排序时遇到了问题。由于Emp_Police表的查询不返回任何记录(由于类似的"SP*“过滤器),我得到以下错误:
“按小时排序(按小时计算)包含查询未选择的字段。只有第一个查询中请求的字段才能按表达式包含在订单中。”
ORDER表达式在字段未格式化时起作用,但在字段格式化时不起作用。我也尝试过按表达式排序,如
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;
作为一个较小的问题,格式化的数字是左对齐的,就好像它们是文本,而不是数字应有的右对齐一样。
发布于 2016-02-26 17:06:54
您可以在子查询中包括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
的列。
发布于 2016-02-26 17:30:28
将最后一行更改为
ORDER BY Expr1 DESC
很管用。
https://stackoverflow.com/questions/35664453
复制相似问题