No soy un experto en SQL, pero prueba esto:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0
Vea mi demostración de violín
Explicación:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Siguiente condición:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Sin embargo, si desea solo el mes anterior, independientemente de si es el mismo año que la fecha actual o no, puede eliminar la segunda condición, como:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Vea la Demostración por esto.
Por ejemplo, si la fecha actual es 2013-01-19
entonces cualquier December 2012
la solicitud se incluirá a pesar de que no es del mismo año pero obviamente es del mes anterior.