我正在處理MS SQL中的查詢以顯示最近30天內在我們的「服務中心」中多次出現的項目。所需數據來自最近的服務訂單之前的服務訂單,基於序列號。因此,如果在過去30天內收到了某件商品,請檢查它是否在過去30天內的前一次收到。如何在加入之前獲取上一個MAX日期
ServiceOrders表:CustID
,ItemID
,DateReceived
ItemMaster表:CustID
,ItemID
,SerialNumber
我可以用
ServiceOrders.DateReceived >= DATEADD(month,-1,GETDATE())
我可以從過去的一個月中加載的服務訂單到拿到DateReceived項目一個臨時表,然後根據它來查詢以獲得先前的服務訂單,但這聽起來不像是最好的計劃。任何有效的方式來獲得以前的服務訂單的想法?
實施例數據
ServiceOrders表:
CustID ItemID DateReceived
1 2 9/26/2016
1 2 9/05/2016
1 2 1/15/2015
5 6 9/20/2016
7 6 9/02/2016
ItemMaster表:
CustID ItemID SerialNumber
1 2 8675309
5 6 101
7 6 101
因此,在上述例子中,的SerialNumber 8675309和101已經接收到一次以上,在過去30天。我需要來自ServiceOrders和ItemMaster的DateReceived 9/05/2016和09/02/2016記錄(30天內的第二個最近的記錄)的數據。這兩個表中還有其他字段,但在這裏簡化了。由於物品可以被轉移,因此CustID不一定會始終保持不變。 SerialNumber是關鍵。
發佈足夠的樣本數據來說明您的任務和期望的結果。 –
我同意PM 77-1。如果您可以發佈一些示例數據以顯示您真的以後是什麼,這將非常有幫助。 – Connor
添加了示例數據和標籤。 –