У меня есть запрос, который я не могу заставить работать правильно. У меня 3 стола; Персона, ПерсонаПрограмма и Категория.
Person: ID, ....
PersonProgram: ID, PersonID, Category, Code ...
Category: ID, ...
Таблица Person имеет 1 запись для каждого человека, а PersonProgram имеет несколько программ на человека. Есть 4 категории, и мне нужно вытащить в один ряд каждого человека с определенной программой каждой категории.
Персональный стол:
1
2
3
Таблица PersonProgram
1, 1, 1, 1
2, 1, 2, 1
3, 1, 1, 3
4, 2, 1, 1
5, 2, 3, 3
Какой должен быть желаемый результат:
PersonID, ProgramIDforCat1, ProgramIDforCat2, ProgramIDforCat3, ProgramIDforCat4
1, 1, 2, NULL, NULL
2, 1, NULL, 3, NULL
Проблема заключается в том, что для каждого человека и категории имеется несколько записей Программы с кодом 1, 2 или 3. Мне нужно поставить приоритет на Код 1, а затем Код 3 и игнорировать остальные, оставляя при этом только одну запись, или NULL, если он не существует.
Я теряю это, пытаясь заставить это работать.
К вашему сведению, это должно быть в поле зрения.
Спасибо за любую помощь.