Я хочу видеть данные второй строки, такие как дата начала, дата окончания, и связывать их с новыми столбцами в одной строке, если они совпадают.
Name Id Start date End date Association
XYZ 100 1/1/2017 1/1/2022 Marketing
XYZ 100 5/1/2018 1/1/2028 Business
Результат:
Name Id Start date End date Association Start date1 End date1 Association1
XYZ 100 1/1/2017 1/1/2022 Marketing 5/1/2018 1/1/2028
Что, если этому условию удовлетворяют более двух строк?
Да, нам нужно сравнить имя и идентификатор. Если более двух условий, он должен отображать их в новых столбцах startdate2 enddate2 Association2 и т. д.
Это один стол? Что такое условие самостоятельного присоединения?
Да, у меня только один стол
Ваша проблема решена: -
select Id,
name,
max(case when rn = 1 then StartDate end) StartDate,
max(case when rn = 1 then EndDate end) EndDate,
max(case when rn = 1 then Association end) Association,
max(case when rn = 2 then StartDate end) StartDate1,
max(case when rn = 2 then EndDate end) EndDate1,
max(case when rn = 2 then Association end) Association1
from
(
select id, name, StartDate, EndDate, Association,
row_number() over(partition by Id order by name) rn
from Business
) src
group by id, name;
Идеально. Большое спасибо, Ахилеш.
"...если записи идентичны..." -- я полагаю, вы сравниваете столбцы
NAME
иID
, верно?