2014-12-07 36 views
5

我試圖創建一個SQL語句,它計算未交付產品的交付相對於當前日期延遲了多少天。結果應顯示延遲天數超過10天的訂單行號的訂單號,訂單日期,產品編號和延遲天數。試圖顯示datediff大於十天

這是到目前爲止我的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 

但它不工作。有誰知道如何解決這最後一步?

回答

9

添加到您的where子句:

AND DATEDIFF(day, orderdatum, getdate()) > 10 
1

對我來說,它看起來像你需要添加到您的WHERE子句。

datediff(day, orderdatum, isnull(utdatum, getdate())) > 10 
1

如果您想要的條件是:

WHERE (getdate()-orderdatum) > 10 

簡單地改寫這個爲:

WHERE orderdatum < getdate() - 10 

或者:

WHERE orderdatum < dateadd(day, -10, getdate()) 

這也是 「優化搜索」 的含義比的索引要多可用於查詢。