Tôi không phải là chuyên gia SQL nhưng hãy thử điều này:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0
Xem Demo Fiddle của tôi
Giải thích:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Điều kiện tiếp theo:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Tuy nhiên, nếu bạn chỉ muốn tháng trước đó bất kể nó có cùng năm với Ngày hiện tại hay không thì bạn có thể loại bỏ điều kiện thứ hai, như:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Xem Demo cho điều này.
Ví dụ:nếu Ngày hiện tại là 2013-01-19
sau đó bất kỳ December 2012
yêu cầu sẽ được bao gồm mặc dù không cùng năm nhưng rõ ràng là của tháng trước.