从SQL表ASC中选择最后25条记录,然后按DESC排序

时间:2020-01-14 04:31:02

标签: sql excel vba

我想从表(ASC)中选择最后25条记录,但是我想在excel表DESC中显示它们(因此,这25条记录中的最后一条将在表中排在第一位)。我已经创建了SQL查询,但VBA宏表示查询在关键字“ ORDER”附近的语法不正确

任何建议如何继续?我使用SQL Server和Excel VBA宏

SQLStr = "(SELECT TOP 25 lot, na FROM ImportantProcessParameters WHERE product = 'Pt Nitrate' AND lot IS NOT NULL AND na IS NOT NULL ORDER BY lot ASC) ORDER BY lot DESC;"

3 个答案:

答案 0 :(得分:0)

尝试一下:

SQLStr = "select i.lot, i.na 
           from
            (SELECT TOP 25 lot, na 
             FROM ImportantProcessParameters 
             WHERE product = 'Pt Nitrate' AND lot IS NOT NULL AND na IS NOT NULL 
             ORDER BY lot ASC) as i
          ORDER BY i.lot DESC;

答案 1 :(得分:0)

我想从表(ASC)中选择最后25条记录

SELECT TOP 25 lot, na FROM ImportantProcessParameters WHERE product = 'Pt Nitrate' AND lot IS NOT NULL AND na IS NOT NULL ORDER BY lot;

但是我想在excel表DESC中显示它们(所以最后一个 这25个将排在表格的首位

您应将结果包装到如下所示的子表中

SQLStr = "SELECT * 
          FROM (SELECT TOP 25 lot, na 
                    FROM ImportantProcessParameters 
                    WHERE product = 'Pt Nitrate' AND lot IS NOT NULL AND na IS NOT NULL ORDER BY lot)
         ORDER BY lot DESC"

答案 2 :(得分:0)

检查以下查询

select X.lot, X.na 
           from
            (SELECT TOP 25 lot, na 
             FROM ImportantProcessParameters 
             WHERE product = 'Pt Nitrate' AND lot IS NOT NULL AND na IS NOT NULL 
             ORDER BY lot ASC) as X
          ORDER BY X.lot DESC;
相关问题