У меня есть таблица данных, в которой есть список столбцов (для данного примера сводятся к соответствующим):
users(
usr_pkey int identity(1, 1) primary key,
usr_name nvarchar(64),
...,
)
accounts(
acc_pkey int identity(1, 1) primary key,
usr_key int foreign_key references users(usr_pkey),
acc_effective datetime,
acc_expires datetime,
acc_active bit,
...,
)
Из этой таблицы я ищу все записи, где:
- Учетная запись принадлежит указанному пользователю и
- В первом случае:
- учетная запись активна и сегоднядата попадает между датой вступления в силу и сроком действия учетной записи или
- Во втором случае:
- , если в первом экземпляре не было обнаружено никаких записей,запись с самой последней датой истечения срока действия.
Итак - если существует активная запись, где сегодняшняя дата находится между датой вступления в силу и сроком действия учетной записи, я хочу эту запись.Только если совпадений не найдено, я хочу, чтобы у этого пользователя была самая последняя дата истечения срока действия.