#sql #db2
#sql #db2
Вопрос:
Извините за неуклюже сформулированный заголовок; я не мог придумать другого способа описать эту проблему!
У меня есть таблица (назовем ее table1), которая выглядит примерно так:
OFFER | DEAL
------------
A | 1
B | 1
C | 1
D | 2
E | 2
F | 3
Я хочу написать запрос, в котором перечислены все предложения и их номер сделки, а также дополнительное поле, показывающее любые предложения, которые имеют этот номер сделки.
Другими словами, результаты должны выглядеть следующим образом:
OFFER | DEAL | SHARED
---------------------
A | 1 | B
A | 1 | C
B | 1 | A
B | 1 | C
C | 1 | A
C | 1 | B
D | 2 | E
E | 2 | D
Кто-нибудь знает, как это сделать, пожалуйста?
Ответ №1:
Вы можете использовать самосоединение:
select t1.*, t2.offer
from t t1 join
t t2
on t1.deal = t2.deal and t1.offer <> t2.offer;