Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> реализация запроса 
:(
    Опции темы
Andrusha
Дата 15.2.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2006
Где: Москва

Репутация: нет
Всего: нет



есть табличка:
Код

create table #tmp
(
col1 int not null
,col2 int not null
);


данные там такие:
Код

insert into #tmp
select 1, 23 union all
select 2, 45 union all
select 1, 45 union all
select 1, 23 union all
select 3, 45 union all
select 1, 12 union all
select 2, 56 union all
select 2, 9


нужно получить следующий результат (сформировать строку сгруппировав по полю col1): 
----------------------------
| col1 | colwerwe         |
----------------------------
|   1   |  23,45,23,12    |
|   2   |  45,56,9           |
|   3   |  45                   |
----------------------------

Как такое реализовать?? Может кто-нть сталкивался? 
Проблема в том, что не хочется использовать циклы и курсоры.....

PM MAIL ICQ   Вверх
Magnifico
Дата 20.2.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17



Разбиралась подобная тема (не нужны не циклы не курсоры)
см. топик:
http://forum.vingrad.ru/forum/topic-193819.html


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Andrusha
Дата 23.2.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.11.2006
Где: Москва

Репутация: нет
Всего: нет



Magnifico, спасибо за помощь

Вот что получилось:

Код

create table #tmp 
(
col1 int not null
,col2 int not null
);

insert into #tmp
select 1, 23 union all
select 2, 45 union all
select 1, 45 union all
select 1, 23 union all
select 3, 45 union all
select 1, 12 union all
select 2, 56 union all
select 2, 9

create clustered index fast on #tmp(col1);

select  distinct 
    t1.col1 
    ,(
        SELECT convert(varchar, t2.col2)+','
        FROM #tmp t2 
        where t2.col1 = t1.col1 
        FOR XML PATH('')
      ) as agrStr
from #tmp as t1 

drop index #tmp.fast
drop table #tmp


Это сообщение отредактировал(а) Andrusha - 23.2.2008, 21:40
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.