ORDER BY无法正常访问

时间:2017-10-31 12:17:38

标签: sql ms-access

我编写了一个生成此输出的查询,但是日期没有按顺序排序,当我在访问的设计视图中执行相同的操作时。它正在做同样的事情。

SELECT 
    AIRCRAFT.tail_no, FORMAT([op_datetime],"Long Date") AS DayOfOperation, 
    COUNT(AIRCRAFT.Tail_No) AS Total
FROM 
    AIRCRAFT 
INNER JOIN 
    OPERATION ON AIRCRAFT.AC_ID = OPERATION.AC_ID
WHERE 
    (((AIRCRAFT.tail_no)='xxxxxx'))
GROUP BY 
    AIRCRAFT.tail_no, FORMAT([op_datetime],"Long Date")
ORDER BY
    MAX([op_datetime]);

下面的输出结果

tail_no                 DayOfOperation          Total
xxxxxx              31 October 2016                 1
xxxxxx              31 October 2015                 1
xxxxxx              31 May 2016                     2
xxxxxx              31 March 2016                   1
xxxxxx              31 March 2015                   2
xxxxxx              31 July 2017                    1
xxxxxx              31 July 2015                    2
xxxxxx              31 January 2016                 1
xxxxxx              31 December 2016                1

1 个答案:

答案 0 :(得分:2)

您没有按日期订购。您按字符串排序。因此,您的order by工作正常。问题是你的数据。

我强烈建议您修复该列,因此它实际上存储为日期。

但是,datevalue()应该适用于您的查询:

order by  max(datevalue(op_datetime))