2016-02-26 76 views
-1

我想插入我的临时表小于我输入的日期(2016年2月23日)的最新日期插入选择与秩序。根据我的说法,order by是必要的。通过特殊情况

在下面的查询中的order by导致错误。我怎样才能改变这个查询,以便我可以插入最近的日期比输入日期少?

任何想法?

INSERT INTO #tempEffDate(EffDate) 
    (SELECT TOP (1) EffDate 
    FROM ProductTable 
    WHERE EffDate < '2016-02-23' 
    ORDER BY effdate) 
+1

而不是顶部1/order by,这可能会令人困惑,因为人们可能会假定顺序对订单行有一些影响,为什么不使用MIN()? –

+0

如果没有匹配条件的行应发生什么情况?插入行或空值? –

回答

2

不要把它作为子查询。我猜的错误是,你可以通过在一个子查询没有订单......当然发帖称会有帮助的。

INSERT INTO #tempEffDate(EffDate) 
SELECT TOP (1) EffDate 
FROM ProductTable 
WHERE EffDate < '2016-02-23' 
ORDER BY effdate