Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Всем привет!

Подскажите, пожалуйста, как можно сделать задачу, которая реализована ниже только без создания новых имен для таблиц- я про t1 и t2?


CREATE TABLE [Fruit] ([IdFruit] [int] NOT NULL PRIMARY KEY, [FruitName] [nvarchar](50) NULL)
INSERT INTO [Fruit] VALUES ('1', 'Apple'), ('2', 'Orange'), ('3', 'Lemon')

CREATE TABLE [People] ([IdPeople] [int] NOT NULL PRIMARY KEY, [PeopleName] [nvarchar](50) NULL)
INSERT INTO [People] VALUES ('1', 'People1'), ('2', 'People2'), ('3', 'People3')

CREATE TABLE [PeopleFruit] ([IdPeopleFruit] [int] NOT NULL PRIMARY KEY, [Peopleid] [int] NULL, [Fruitid] [int] NULL)
INSERT INTO [PeopleFruit] VALUES ('1', '1','1'), ('2', '1','2'), ('3', '2','3'), ('4', '2','1'), ('5', '3','1')


SELECT PeopleName ,( SELECT FruitName + ',' AS 'data()' FROM Fruit left join PeopleFruit t2 ON Fruitid=IdFruit WHERE t1.Peopleid=t2.Peopleid FOR XML PATH('') )
FROM People left join PeopleFruit t1 ON IdPeople=Peopleid
GROUP BY PeopleName, Peopleid
22 авг 18, 23:52    [21651358]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
Какое еще такое создание? Вам алиасы (я про t1 и t2) религия не позволяет использовать?

Сообщение было отредактировано: 23 авг 18, 00:53
23 авг 18, 00:49    [21651428]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Гавриленко Сергей Алексеевич
Какое еще такое создание? Вам алиасы (я про t1 и t2) религия не позволяет использовать?

ну что-то типа того)) там, где я кусок кода t-sql пытаюсь внедрить -там не продумано использование алиасов((
Поэтому теперь пытаюсь переделать задачу без их использования.
23 авг 18, 00:56    [21651434]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
LisSp
Гавриленко Сергей Алексеевич
Какое еще такое создание? Вам алиасы (я про t1 и t2) религия не позволяет использовать?

ну что-то типа того)) там, где я кусок кода t-sql пытаюсь внедрить -там не продумано использование алиасов((
Поэтому теперь пытаюсь переделать задачу без их использования.
Ну так продумайте -- в этом много ума не надо. А приведенный вами код без алиасов работать не будет.
23 авг 18, 01:02    [21651436]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Гавриленко Сергей Алексеевич
LisSp
пропущено...

ну что-то типа того)) там, где я кусок кода t-sql пытаюсь внедрить -там не продумано использование алиасов((
Поэтому теперь пытаюсь переделать задачу без их использования.
Ну так продумайте -- в этом много ума не надо. А приведенный вами код без алиасов работать не будет.


Я не знаю другого варианта. Поэтому сюда и пишу. Может кто что по делу подскажет.
23 авг 18, 01:04    [21651441]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
LisSp
Гавриленко Сергей Алексеевич
пропущено...
Ну так продумайте -- в этом много ума не надо. А приведенный вами код без алиасов работать не будет.


Я не знаю другого варианта. Поэтому сюда и пишу. Может кто что по делу подскажет.
Зато я знаю вариант. Достаточно прекратить нести какую-то завуалированную чушь и объяснить задачу полностью, а не только ваш придуманный метод решения "без создания новых имен для таблиц".
23 авг 18, 01:12    [21651444]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Гавриленко Сергей Алексеевич
LisSp
пропущено...


Я не знаю другого варианта. Поэтому сюда и пишу. Может кто что по делу подскажет.
Зато я знаю вариант. Достаточно прекратить нести какую-то завуалированную чушь и объяснить задачу полностью, а не только ваш придуманный метод решения "без создания новых имен для таблиц".


Вы всегда столь приветливы?
Надо получить тоже самое на выходе, что получается в коде первого сообщения, только другим способом. Так лучше?
23 авг 18, 01:19    [21651447]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
LisSp
Надо получить тоже самое на выходе, что получается в коде первого сообщения, только другим способом. Так лучше?
Партизаньте дальше, удачи.

З.Ы. Есть, конечно, варианты, как сложить два числа не используя операцию "плюс" только потому, что кто-то не может с ней разобраться, но это, как правило, какое-то стремное извращение.

Сообщение было отредактировано: 23 авг 18, 01:29
23 авг 18, 01:26    [21651450]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Гавриленко Сергей Алексеевич
LisSp
Надо получить тоже самое на выходе, что получается в коде первого сообщения, только другим способом. Так лучше?
Партизаньте дальше, удачи.


Сергей, я реально не понимаю, что вам не нравится в моих сообщениях
23 авг 18, 01:30    [21651451]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
LisSp
Сергей, я реально не понимаю, что вам не нравится в моих сообщениях
Да ну что вы! Мне все нравится, пишите еще!
23 авг 18, 01:35    [21651452]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36691
Btw, Объединение значений колонки через запятую по группам

Но как писать это все без алиасов как-нибудь разбирайтесь без меня.

Сообщение было отредактировано: 23 авг 18, 01:48
23 авг 18, 01:42    [21651453]     Ответить | Цитировать Сообщить модератору
 Re: Объединение значений колонки через запятую по группам  [new]
LisSp
Member

Откуда:
Сообщений: 186
Гавриленко Сергей Алексеевич
Btw, Объединение значений колонки через запятую по группам

Но как писать это все без алиасов как-нибудь разбирайтесь без меня.


Спасибо большое! Всё получилось!

SELECT PeopleName, STRING_AGG (FruitName, ',') AS FruitName
FROM Fruit left join PeopleFruit on Fruitid=IdFruit
           left join People on IdPeople=Peopleid
GROUP BY PeopleName
23 авг 18, 02:02    [21651457]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить