E se usassi il numero del mese ? Non ti va bene ? devi tener conto anche dell'anno ? (cosa peraltro comunque facile da aggiungere)
Qualcosa del tipo : select * from tabella where datepart(mm,data) = datepart(mm,getdate())-1
(richiede ovviamente un minimo di gestione del numero del mese, se è 1 non può diventare 0 ma 12, etc)
EDIT
In alternativa:
--First day of last month
SELECT DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0))
--Last day of last month
SELECT DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))
http://stackoverflow.com/questions/1...onth-using-sql