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

Откуда: Москва
Сообщений: 391
Приветы.
Вот никак не догоню можно ли без курсоров здесь обойтись, для получения результата сабжа

declare @a table ([id] int identity(1,1),a1 nvarchar(100),a2 int)
declare @b table ([id] int identity(1,1),b1 int,b2 int)
insert @a select '1',38 
          union all select '2',3
insert @b select 10,38
          union all select 11,38
          union all select 12,38
          union all select 13,38
          union all select 14,3

select a1,a2,b1 from @a t1
inner join @b t2
on t1.a2=t2.b2

a1      a2      b1
1	38	13
1	38	10
1	38	11
1	38	12
2	3	14

А требуется вот что
a1  a2  b1
1   38  '13;10;11;12'
2   3   '14'

Заранее благодарен...
23 июн 05, 17:49    [1645316]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
в фак
23 июн 05, 17:52    [1645329]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
itON
Member

Откуда: Москва
Сообщений: 391
2Smirnov Anton
Неее, без UDF надо
23 июн 05, 17:55    [1645348]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
можно в цикле со временной таблицей
23 июн 05, 18:00    [1645370]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Smirnov Anton
можно в цикле со временной таблицей

Да я так уже сделал, мне вот интересно без циклов, динамики,
#таблиц возможно ли это реализовать, скока думал пока ниче хорошего не придумывается.
23 июн 05, 18:03    [1645382]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
itON
Smirnov Anton
можно в цикле со временной таблицей

Да я так уже сделал, мне вот интересно без циклов, динамики,
#таблиц возможно ли это реализовать, скока думал пока ниче хорошего не придумывается.

ну не зря этот вопрос в фак вынесли
значит нет
23 июн 05, 18:09    [1645404]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
itON
2Smirnov Anton
Неее, без UDF надо
Ну, в факе ж приведен пример Для SQL 7 как раз без UDF (ну, нет удээфов в семерке) ;-)
24 июн 05, 06:43    [1646066]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
VladRUS.ca
Member

Откуда: Toronto
Сообщений: 1172
автор
... мне вот интересно без циклов, динамики,
#таблиц возможно ли это реализовать, скока думал пока ниче хорошего не придумывается.
Решение дубовое но рабочее:
select a1, a2, rtrim(max(substring(b01, 12, 10))) 
    + rtrim(max(substring(b01, 22, 11)))
    + rtrim(max(substring(b01, 33, 11)))
    + rtrim(max(substring(b01, 44, 11)))
    + rtrim(max(substring(b01, 55, 11)))
    + rtrim(max(substring(b01, 66, 11)))
    + rtrim(max(substring(b01, 77, 11)))
    + rtrim(max(substring(b01, 88, 11)))
    -- ... забиваем на предрологаемый максимум
    + rtrim(max(substring(b01, 110000, 11))) as Sum_of_b1
from (
    select a1, a2, replicate('          ;', row) + cast(b1 as char(10)) as b01
    from (
        select a1,a2,b1, ( select count(*) from @b b where b2 = t2.b2 and id <= t2.id ) as row    
        from @a t1 inner join @b t2 on 
            t1.a2=t2.b2 
        ) t01
    ) t001
group by a1, a2
order by a1
24 июн 05, 08:34    [1646144]     Ответить | Цитировать Сообщить модератору
 Re: Строка со связанными id через сепаратор для каждой группы  [new]
itON
Member

Откуда: Москва
Сообщений: 391
2VladRUS.ca
Ндааааа, круто!!
24 июн 05, 13:00    [1647263]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить