Вы можете добавить вложенное выражение IIf () в предложении WHERE: вернуть False, если EMAIL_DATE равен "-"; в противном случае возвращает True или False в зависимости от сравнения CDate () двух полей. Строка будет включена в результирующий набор, только если это выражение вернет True.
SELECT
A.ICAO,
A.IATA,
A.AIRPORT_NAME,
A.CITY,
A.REVISED_DATE,
A.COMPANY,
A.EMAIL_DATE
FROM
AIRPORT_CHECKLIST AS A
WHERE
A.COMPANY='company'
AND IIf(EMAIL_DATE='--',False,
IIf(CDATE(REVISED_DATE) > CDATE(EMAIL_DATE),True,False))
AND A.FLAG_DELETE='No';
Кроме того, если оба поля «дата» были текстового типа, вы можете сохранить значения даты в формате «гггг-мм-дд» и просто сравнить текстовые значения без проблем с несоответствием типов данных.
A.EMAIL_DATE <> '--' AND A.REVISED_DATE > A.EMAIL_DATE
Редактировать: Если FLAG_DELETE имеет тип Да / Нет (вместо типа текста), используйте в сравнении буквальное значение False.
AND A.FLAG_DELETE=False