Не съм експерт по SQL, но опитайте това:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0
Вижте моята демонстрация на Fiddle
Обяснение:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Следващото условие:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Ако обаче искате само предходния месец, независимо дали е същата година като текущата дата или не, можете да премахнете второто условие, като:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Вижте Демо за това.
Например, ако CurrentDate е 2013-01-19
след това всеки December 2012
заявката ще бъде включена, въпреки че не е от същата година, а очевидно е от предишния месец.