У меня есть следующая таблица:
Пользователь
- Идентификатор_пользователь
- CompanyID
- Имя
- IsActive
- Date_Joined
- Date_Left
Я пытаюсь получить запрос для получения платных пользователей, критерии:
- Пользователь, присоединившийся к месяцу выставления счета, не считается оплачиваемым пользователем.
- Пользователь, ушедший на месяц выставления счета, является платным пользователем.
У меня следующий запрос:
SELECT * from user u WHERE CompanyID = 1205
AND (p.IsActive = 1 AND MONTH(p.Date_Joined) != MONTH(GETDATE())
OR (p.is_active = 0 AND MONTH(p.Date_Left) = MONTH(GETDATE())
Проблема в том, что этот запрос не работает, так как он не проверяет год пользователя (пользователи, присоединившиеся в сентябре 2017 года, не считаются оплачиваемыми, даже если они и должны были присоединиться в 2017 году, а не в этом году лица, созданные в сентябре 2018 года, не должны рассматриваться как подлежащие оплате).
Как мне ввести год или оптимизировать мой запрос?