Имя: Пароль:
1C
 
MS SQL: соединить колонки независимо
0 extrim-style
 
26.11.15
15:40
Кратко. Имеются 2 таблицы А(x,y), таблица B(x,z). Колонка x - одинаковая. Необходимо соединить таблицы в одну независимо. Для каждого значения x: если количество(y)>количество(z) - продлить колонку z последним значением y, и наоборот - если количество(z)>количество(y) - продлить колонку y последним значением z. Тип данных - строка.

Упрощенный пример (дополнять нужно именно последним, а не максимальным):
таблица А:
1    11
2    21
2    22
3    31
3    32
3    33
3    34

таблица B
1    111
2    121
2    122
2    123
2    124
3    131
3    132

Итоговая таблица:
1    11    111
2    21    121
2    22    122
2    22    123
2    22    124
3    31    131
3    32    132
3    33    132
3    33    132

Исходный запрос для примера:
if object_id('tempdb..#tbtest1') is not null drop table #tbtest1
if object_id('tempdb..#tbtest2') is not null drop table #tbtest2

select 1 as x,11 as y
into #tbtest1
union all
select 2,21
union all
select 2,22
union all
select 3,31
union all
select 3,32
union all
select 3,33
union all
select 3,34

select 1 as x,111 as z
into #tbtest2
union all
select 2,121
union all
select 2,122
union all
select 2,123
union all
select 2,124
union all
select 3,131
union all
select 3,132

select * from #tbtest1
select * from #tbtest2
1 Гёдза
 
26.11.15
15:42
по номеру строки что-ли?
2 extrim-style
 
26.11.15
15:43
(1) первая колонка не номер строки. Это упрощенный пример. Вообще там ссылки. Но будем считать, что строки любые.
3 Гёдза
 
26.11.15
15:44
по номеру строки в пределах группировки
4 Гёдза
 
26.11.15
15:44
у тебя номера и нет. в этом и проблема. а соединять по нему ты хочешь
5 extrim-style
 
26.11.15
15:46
(4) я хочу соединять по первому столбцу
6 Гёдза
 
26.11.15
15:47
(5) Первый столбец+номер строки. Как я и сказал в (3)
7 Записьдампа
 
26.11.15
18:09
(5) Если у тебя там ссылки, то надо вводить дополнительный столбец для сортировки - тот самый "номер строки". Понятие "Последний", по которому ты хочешь дополнять, подразумевает упорядоченность.

Переформулируй задачу как-нибудь =)
8 Shurjk2
 
26.11.15
18:12
Надо тут не соединять, а объединять.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший