簡體   English   中英

SQL查詢以查找最后日期

[英]SQL query to find last date

我們將生產的第二天在數據庫中輸入生產數據,我正在使用以下查詢來獲取昨天的數據。

查詢工作正常,直到周末之后,由於星期一沒有生產,星期一不顯示任何內容。

無論如何,我可以更改查詢以顯示生產的最后一天。

SELECT Date, ProductCode
FROM Production
WHERE (ProductCode In ('35032','40112-I','41212-I','50112','824-5'))                   
AND (Date=Dateadd(dd,-1,Convert(char(8),Current_timestamp,112)))

一個簡單的解決方案,使用CASE語句檢查是否為星期一,如果是,則減去3天而不是1天。

SELECT  Date, ProductCode
FROM    Production
WHERE   (ProductCode In ('35032','40112-I','41212-I','50112','824-5'))                   
AND     (Date=Dateadd(Day, Case When DatePart(WeekDay, Current_Timestamp) = 2 Then -3 Else -1 End, Convert(Date, Current_Timestamp)))

另一個(更精確的)解決方案是將表中的最新Date拉出,而不是今天的Date

SELECT  Date, ProductCode
FROM    Production
WHERE   (ProductCode In ('35032','40112-I','41212-I','50112','824-5'))                   
AND     (Date= (Select Max(Date) From Production Where Date <> Convert(Date, Current_Timestamp)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM