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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обьединение результата запроса... 
:(
    Опции темы
MaxxSoftware
Дата 8.11.2005, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ето сматрити.... есть вот така таблица
id | typ
============
2 | 1-358.00
2 | 2-659.00
3 | 1-563.20
4 | 4-9565.10
4 | 1-653.20

как мне с нее получить вот такое
a | b
=====================
2 | 1-358.00, 2-659.00
3 | 1-563.20
4 | 4-9565.10, 1-653.20

тоесть соезденить все поля с адним ИДом в строку, разделив при этом каким либо разделителем.

без временых таблиц...
зарание спасибо!

Это сообщение отредактировал(а) MaxxSoftware - 8.11.2005, 09:46
PM MAIL   Вверх
Akina
Дата 8.11.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



по-моему груповая операция конкатенации не определена... так что хранимая процедура тебя спасет.


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

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


Новичок



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

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



а если по подробнее... ну типа для лахов... smile
PM MAIL   Вверх
Akina
Дата 8.11.2005, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



MS SQL - Help - Stored Procedures and Views


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

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


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



Цитата(MaxxSoftware @ 8.11.2005, 10:41)
а если по подробнее... ну типа для лахов... smile

Тогда через cursor и с временной таблицей
Код

create procedure sp1
as
create table @t
(
[id] int,
[typ] varchar(1000)
)
declare cur cursor for 
select id, typ
from table1
declare @id int
declare @typ varchar(50)

open cur 

fetch next from cur
into @id, @typ

while @@fetch_status = 0
begin
   select * from #t where [id] = @id
   if @@rowcount > 0 
      update #t
      set [typ] = [typ] + ', ' + @typ
      where [id] = @id
   else
      insert into #t
      values(@id, @typ)
   fetch next from cur
   into @id, @typ
end


И получится, что то типа такого.
Не проверял, возможны не точности


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
MaxxSoftware
Дата 8.11.2005, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ни работат smile запрос вообще вылитает по таймауту и возвращает кучу кучу таблиц, пустых.... ну в некаторых есть значения... но совсем не те что надо... вообще точнее не понятные значения....
PM MAIL   Вверх
Akina
Дата 8.11.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



MaxxSoftware smile а что, в Тюмени все такие безграмотные?


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

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


Новичок



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

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



угу smile неудача нам =)
PM MAIL   Вверх
boevik
Дата 8.11.2005, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

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



OK, вот подправленная процедурка.
Принцип не изменился, но работает отлично
Код

--Создание таблицы
create  table tb1
(
[col1] int,
[col2] varchar(10)
)
go
--Заполнение значениями
insert into tb1
values(1,1)
insert into tb1
values(2,2)
insert into tb1
values(1,3)
insert into tb1
values(1,4)
insert into tb1
values(2,5)
insert into tb1
values(3,0)
insert into tb1
values(1,1)

go
--Создание процедуры
create procedure sp1
as
create  table #t
(
   [col1] int,
   [col2] varchar(1000)
)
declare cur  cursor for
select col1, col2
from tb1
declare @col1  int
declare @col2 varchar(50)

open cur

fetch next from  cur
into @col1, @col2
while @@fetch_status = 0
begin
  select * from #t where [col1] = @col1
  if @@rowcount > 0
      update #t
     set [col2] = [col2] + ', ' + ltrim(rtrim(@col2))
     where [col1] = @col1
  else
     insert into #t
     values(@col1, ltrim(rtrim(@col2)))
  fetch next from cur
  into @col1, @col2
end
close cur
deallocate cur
select * from #t
go
--Запуск процедуры
sp1




--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
MaxxSoftware
Дата 9.11.2005, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сильвупле! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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