Jag är ingen SQL-expert men prova detta:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0
Se min Fiddle Demo
Förklaring:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Nästa villkor:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Men om du bara vill ha föregående månad, oavsett om det är samma år som aktuellt datum eller inte, kan du ta bort det andra villkoret, som:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Se demon för detta.
Till exempel om CurrentDate är 2013-01-19
sedan någon December 2012
Begäran kommer att inkluderas trots att den inte är från samma år utan uppenbarligen från föregående månad.