powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объединение нескольких записей в одну
4 сообщений из 4, страница 1 из 1
Объединение нескольких записей в одну
    #39953209
Xview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня всем.

Хотел бы получить совет насчет одного решения.

Имеется таблицаб где у каждого ID всегда заполнено только одно из полей FIELD1....FIELDx.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
TABLE

ID | FIELD1  | FIELD2  | FIELD3  | FIELD4 
_______________________________________
1  |  value1 | NULL    | NULL    | NULL
1  |  NULL   | value2  | NULL    | NULL
1  |  NULL   | NULL    | value3  | NULL
1  |  NULL   | NULL    | NULL    | value4
2  |  value5 | NULL    | NULL    | NULL
2  |  NULL   | value6  | NULL    | NULL
2  |  NULL   | NULL    | value7  | NULL
2  |  NULL   | NULL    | NULL    | value8
3  |  value9 | NULL    | NULL    | NULL
3  |  NULL   | value10 | NULL    | NULL
3  |  NULL   | NULL    | value11 | NULL
3  |  NULL   | NULL    | NULL    | value12


необходимо получить следующий результат.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
RESULT TABLE

ID | FIELD1  | FIELD2  | FIELD3  | FIELD4 
_______________________________________
1  |  value1 | value2  | value3  | value4  
2  |  value5 | value6  | value7  | value8  
3  |  value9 | value10 | value11 | value12  


Решил через через INNER JOIN саму на себя, что то типа такого:
Код: sql
1.
2.
3.
4.
FROM TABLE AS T1
INNER JOIN (SELECT ID FROM TABLE WHERE FIELD2 IS NOT NULL) T2 on T1.ID = T2.ID 
INNER JOIN (SELECT ID FROM TABLE WHERE FIELD3 IS NOT NULL) T3 on T1.ID = T2.ID 
WHERE T1.FIELD1 IS NOT NULL




Однако, судя по всему, столбцов может быть довольно много, либо их число может меняться.
Есть ли какой-то более элегантный способ?

Спасибо!
...
Рейтинг: 0 / 0
Объединение нескольких записей в одну
    #39953213
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если тупо
Код: sql
1.
2.
3.
SELECT T.ID,MAX(T.FIELD1)AS F1,MAX(T.FIELD2)AS F2,MAX(T.FIELD3)AS F3
 FROM TABLEA AS  T
 GROUP BY T.ID
...
Рейтинг: 0 / 0
Объединение нескольких записей в одну
    #39953237
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Xview,

Похоже на недопиленный pivot. Сделайте группировку с любой агрегатной функцией на каждом столбце по ID.
...
Рейтинг: 0 / 0
Объединение нескольких записей в одну
    #39956107
Xview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объединение нескольких записей в одну
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]