La cláusula where evalua cada uno de los registros de la tabla de forma individual para valorar si la fila entra o no en el resultado final de la consulta.
El having evalua la función agregada en cuestión una vez evaluados los registros para valorar si la fila resultante, que puede corresponder a varios registros, debe formar parte del resultado de la consulta.
En tu caso, tal y como apunta jhonny, debería funcionar la consulta que te propone aunque creo que podrías omitir el
por dos cuestiones
1.- Creo recordar que las funciones agregadas omiten directament los valore null
2.- Al especificar
Código SQL
[-]AND EXTRACT(MONTH FROM Fecha) = 2
estas descartando directamente los valores null para la fecha
Saludos