Nie jestem ekspertem SQL, ale spróbuj tego:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0
Zobacz moje demonstracja skrzypiec
Wyjaśnienie:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Następny warunek:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Jeśli jednak chcesz tylko poprzedni miesiąc, niezależnie od tego, czy jest to ten sam rok co bieżąca data, czy nie, możesz usunąć drugi warunek, taki jak:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Zobacz Demo w tym celu.
Na przykład, jeśli aktualna data to 2013-01-19
potem dowolny December 2012
wniosek zostanie uwzględniony, mimo że nie jest z tego samego roku, ale oczywiście z poprzedniego miesiąca.