/ / Як я можу отримати верхній рядок, коли є дублікати ідентифікаторів в SQL - sql, sql-server, tsql

Як я можу отримати верхній рядок, коли існує дублікат ідентифікаторів у SQL-sql, sql-сервері, tsql

Я використовую об'єднання і об'єднання для отримання данихкілька таблиць в SQL. У мене є рядки з дублюючими ідентифікаторами, і мені потрібно повернути лише верхні рядки цих рядків дубльованих ідентифікаторів і поєднати дані в певному стовпці у всіх дубльованих рядках в один стовпець верхнього рядка. Я не можу використовувати max (createDate), тому що вони також повторюються у датах.

Це моя збережена процедура:

  select distinct

table1.*,
table2.*
from
calsses table1
inner join documents table2 on table1.ID = table2.ID

union all

select distinct

table3.*,
table2.*
from
exams table3
inner join documents table2 on table3.ID = table2.ID

order by table2.Date desc

Це результат:

Коли я запускаю цю збережену процедуру, я отримую рядки з повторюваними ідентифікаторами.

дублювати рядки data_click тут

Як я можу повернути один рядок з усіх дубльованих рядків і об'єднати дані в стовпці "Іспити" у повторюваних рядках до стовпця "Іспити" в одному повернутому рядку?

Цільовувати data_click тут

Порадьте, будь ласка. Дякую.

Відповіді:

0 для відповіді № 1

я думаю що XML PATH це ваша заява.

Якщо я занижу ваше запитання, у вас є два однакових рядки і у вас немає поля, щоб вибрати його. Таким чином, ви один з цих рядків, але з Address поле згруповано.

select *,
STUFF((SELECT "; " + US.USR_NAME
FROM table_where_is_address twis
WHERE twis.ID = aux.ID_to_join_with_correct_row
FOR XML PATH("")), 1, 1, "") as grouped_address
from (
select distinct
table1.*,
table2.*
from calsses table1
inner join documents table2 on table1.ID = table2.ID
union all
select distinct
table3.*,
table2.*
from exams table3
inner join documents table2 on table3.ID = table2.ID
order by table2.Date desc
) aux

Це змінено для вашої моделі даних має працювати.


0 для відповіді № 2

Хороша стаття для об'єднання значень рядків https://www.red-gate.com/simple-talk/sql/t-sql-programming/concatenating-row-values-in-transact-sql/