Извлечение подстроки на основе другой таблицы и заполнение ею другого столбца в SQL - PullRequest
2 голосов
/ 16 января 2020

Я столкнулся с проблемой с исходными данными, которую мне нужно решить. У меня есть таблица со столбцом All Employees, в которой есть несколько имен, которые я хотел бы извлечь и заполнить другие столбцы. Пожалуйста, посмотрите пример ниже, где у меня есть All Employees из необработанных данных, и я должен заполнить все остальные справа.

Task|All Employees    |Lead Employee1|Lead Employee2|Lead Employee|Reg Employee1|Reg Employee2|Reg Employee
1   |Mark Emily Robert|Mark          |Emily         |Multiple     |Robert       |NULL         |Robert
2   |Mark Robert      |Mark          |NULL          |Mark         |Robert       |NULL         |Robert
3   |Robert           |NULL          |NULL          |NULL         |Robert       |NULL         |Robert

Там около 50 сотрудников и небольшая ротация (люди приходят и go ). Самым простым решением было бы использование нескольких вложенных ИИФ для каждой группы (более или менее 20 сотрудников на группу). Это будет означать изменение ИИФ каждый раз, когда в команде происходят изменения. Я подумал об упорядочении этого и использовал дополнительную таблицу, в которой я мог бы отслеживать текущих и предыдущих сотрудников ниже.

Таблица членов команды

Employee|Position
Mark    |Lead Employee
Emily   |Lead Employee
Robert  |Reg Employee

В каждой группе должен быть один сотрудник к задаче, поэтому я должен отслеживать все ситуации, когда их несколько (например, передать задачу коллеге в отпуск). У меня нет проблем с получением данных для группы (простое предложение WHERE), но я не знаю, есть ли способ использовать какое-то LIKE-выражение, которое проверяло бы наличие (например) лидирующего сотрудника и заполните таблицу этим. Я знаю, что заполнение второго столбца будет проще, потому что я буду использовать аналогичный запрос и просто исключу уже найденного сотрудника (замените его пустой строкой).

Можете ли вы сказать мне, что это выполнимо (если да, пожалуйста, дайте мне подсказку или указание) или я должен придерживаться вложенных ИИФ?

...