Premetto che mettere le mani avanti non è un modo per farsi giustificare ma semmai il contrario... il forum non ha uno scopo di dialogo 1-1.
Si fanno domande in modo possano essere utili a tutti... di conseguenza le risposte.
Quindi darai conferma non a chi ti risponde ma a tutti quelli che leggono e che possono trarne beneficio.
Detto questo... per prendere il mese dalla data usa Month (ccampData)
Ad esempio
SELECT * FROM Tabella
WHERE Month(date())= mont(campData ())
Questa restituisce tutti i contratti con scadenza il mese attuale di qualsiasi anno...
Giuro tuttavia che non ho proprio capito cosa significa il 12 del primo post...
Credo tuttavia tu possa avere un errore di base.
Se un contratto 3AN ha rinnovi manuali 1AN sono informazioni diverse... e dovrebbero risiedere in 2 campi diversi... o forse 2 tabelle diverse se per ogni rinnovo devi tener traccia di documenti e formalità burocratiche.
Semplifichiano quindi con 2 campi:
Scadenza
ProssimoRinnovo
In questo modo usando il campo ProssimoRinnovo non avresti il problema Anno da gestire..