Jeg er ingen SQL-ekspert, men prøv dette:
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
Forklaring:
DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)
Næste betingelse:
DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)
Men hvis du kun vil have den foregående måned, uanset om det er det samme år som den aktuelle dato eller ej, kan du fjerne den anden betingelse, f.eks.:
SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
Se demoen for dette.
For eksempel hvis CurrentDate er 2013-01-19
derefter enhver December 2012
anmodning vil blive inkluderet på trods af, at den ikke er fra samme år, men naturligvis er fra forrige måned.