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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> склеить значение текстового поля при групперовке 
:(
    Опции темы
torandrey
Дата 11.1.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.1.2008

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



Здравствуйте
Подскажите плиз, как при групперовке склеить значения текстового поля
A   B
1   Q
1   W
1   E
2   R

---------------

A   B
1   QWE
2   R

 вот как-то так бы получить

PM MAIL   Вверх
SharedNoob
Дата 11.1.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здается мне что только в цикле.

Первое что пришлов голову:
Код

Create table #T1 (npp int identity(1,1), A int, B varchar(50))
insert into #T1 (A, B) values (1, 'B')
insert into #T1 (A, B) values (1, 'Q')
insert into #T1 (A, B) values (1, 'W')
insert into #T1 (A, B) values (2, 'R')

Create table #T2 (npp int identity(1,1), A int, B varchar(50))
declare @npp int, @nppmax int, @A int, @B varchar(50)
Set @npp=0
Set @nppmax=(select max(npp) from #T1)
While @npp<>@nppmax
   begin
    Set @npp=@npp+1
    select @A=A, @B=B 
        from #T1 t
        where npp=@npp
    If not exists (select top 1 A from #T2 where A=@A) 
        begin
        insert into #T2 (A, B) values (@A, @B)
        end
      Else
        begin
        Update t set
            B=B+@B
            from #T2 t
            where A=@A
        end
   end

select * from #T1
select * from #T2



p.s
я писал на синтаксисе SQL 2000, в теге SQL используется как я понимаю синтаксис MySql

Это сообщение отредактировал(а) SharedNoob - 11.1.2008, 14:15
PM MAIL ICQ Skype   Вверх
torandrey
Дата 11.1.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.1.2008

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



Спасибо
нечто подобное я уже написал
надеялся что можно без циклов решить вопрос, чего-нибудь типо SUM, но для строк подскажут, но похоже на 2000 не судьба
PM MAIL   Вверх
SharedNoob
Дата 11.1.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Sum() в SQL 200 нельзя применять к полям типа Char, Varchar. Но кстати если цикл пустить то временной таблие, а еще если записей будет немного то вообще по таблице памяти, то все будет происходить очень и очень быстро.
PM MAIL ICQ Skype   Вверх
Akina
Дата 11.1.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



В MS SQL функции, аналогичные MySQL-евской group_concat, отсутствуют.

Я бы пошел по пути создания хранимой процедуры, принимающей произвольный запрос и перечень полей для конкатенации, если задача частая, или по пути создания вьюхи, если операция одноразовая.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
SergKO
Дата 12.1.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 14.3.2005

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



Попробуйте воспользоваться этим алгоритмом

http://forum.vingrad.ru/index.php?showtopi...t&p=1250083
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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