Короткая версия:
Как можно сопоставить два столбца из таблицы A и B, если они оба имеют общий идентификатор, который в свою очередь может иметь два значения в столбце C
Позволяет сказать:
A
---
1 , 2
B
---
? , 3
C
-----
45, 2
45, 3
Используя таблицу C, я знаю, что id 2 и 3 принадлежат одному и тому же элементу (45) и, следовательно, "?" в таблице B должно быть 1.
Какой запрос может сделать что-то подобное?
РЕДАКТИРОВАТЬ
Длинная версия опущена. Это было действительно скучно / запутанно
EDIT
Я публикую здесь некоторые результаты.
Из этого запроса:
select distinct( rolein) , activityin from taskperformance@dm_prod where activityin in (
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
)
У меня есть следующие части:
select distinct( activityin ) from taskperformance where rolein = 0
Выход:
http://question1337216.pastebin.com/f5039557
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
Выход:
http://question1337216.pastebin.com/f6cef9393
И наконец:
select distinct( rolein) , activityin from taskperformance@dm_prod where activityin in (
select activityin from activities@dm_prod where activityid in (
select activityid from activities@dm_prod where activityin in (
select distinct( activityin ) from taskperformance where rolein = 0
)
)
)
Выход:
http://question1337216.pastebin.com/f346057bd
Возьмем, например, активность в 335 из первого запроса (из выполнения задачи B).
Присутствует в деятельности от А.
Но не в исполнении заданий в A (а в связанных с этим действиях: 92, 208, 335, 595)
Присутствуют в результате. Соответствующая роль в: 1