У меня есть следующие таблицы:
Projects (ID, Name, ManagerUser_ID)
Users(ID, Name, Active)
Delegates(ProjectID, UserID, OrderNo)
ManagerUser_ID
- менеджер проекта для проекта и ссылка на таблицу пользователей. Пользователи, однако, могут быть Inactive
. Таким образом, таблица «Делегаты» является таблицей «многие ко многим», определяющей пользователей, которые могут получить доступ к данным проекта.
Что мне нужно, так это выбрать первого делегата для проекта, который является Active
при условии, что менеджер Inactive
. Поле OrderNo
указывает порядок делегатов (1 - первый).
Некоторые примеры данных:
Project
1, Project1, 2
2, Project2, 4
3, Project3, 1
Users
1, Joe, true
2, John, false
3, Dave, true
4, Bob, false
Delegates
1, 4, 1
1, 1, 2
1, 3, 3
2, 2, 1
2, 4, 2
2, 3, 3
Таким образом, вывод моего запроса должен показать:
Project1, Joe
Project2, Dave
Project3, Joe
Показать проекты и пользователей для каждого проекта, где, если ManagerUser_ID
неактивен, то выберите User
в Delegates
с самым низким OrderNo
, то есть Active
.