我正在尝试创建一个SQL语句,该语句计算未交付产品的交付相对于当前日期的延迟天数。结果应显示订单行的订单号,订单日期,产品编号和延迟天数,延迟天数超过10天。
到目前为止,这是我的SQL语句:
SELECT
Orderhuvuden.ordernr,
orderdatum,
Orderrader.produktnr,
datediff(day, orderdatum, isnull(utdatum, getdate())) as 'Delay days'
FROM
Orderhuvuden
JOIN
Orderrader ON Orderhuvuden.ordernr = Orderrader.ordernr AND utdatum IS NULL
我遇到的问题是解决如何显示超过10天的延迟天数。我试图添加类似的内容:
WHERE (getdate() - orderdatum) > 10
但它不起作用。有谁知道如何解决这最后一步?
答案 0 :(得分:11)
将此添加到您的where子句:
AND DATEDIFF(day, orderdatum, getdate()) > 10
答案 1 :(得分:2)
如果你想要的条件是:
WHERE (getdate()-orderdatum) > 10
只需将其重写为:
WHERE orderdatum < getdate() - 10
或者:
WHERE orderdatum < dateadd(day, -10, getdate())
这些也是&#34; sargable&#34;意味着orderdatum
上的索引可以用于查询。
答案 2 :(得分:1)
对我而言,您似乎需要将其添加到WHERE子句中。
datediff(day, orderdatum, isnull(utdatum, getdate())) > 10