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

Откуда:
Сообщений: 3
Здравствуйте!
Не могу решить никак задачу. Работаю в mssql 2000

У меня есть таблица с фирмами и их телефонами. Так как у фирм много то и записи с фирмами повторяются только разница в самих телефонах.
автор
ID Фирма Телефон
1 Осень 123321
2 Зима 324543
1 Осень 435456
2 Зима 234123


Мне надо сделать так, чтобы запись о фирме была одна а телефоны были через запятую.
автор
ID Фирма Телефон
1 Осень 123321, 435456
2 Зима 324543, 234123


Как это сделать? Пробовал курсором пробежать но таблица большая и у меня всё виснет.
Интуиция подсказывает что надо пробежаться по таблице и сделать вторую но как??
Подскажите пожалуйста =)
2 окт 12, 18:09    [13257796]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
FAQ
2 окт 12, 18:14    [13257816]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
Alexander2991
Member

Откуда:
Сообщений: 3
Maxx
FAQ

Spasibo! It looks like it is what i was looking for!
But i have an error..
автор
Msg 2772, Level 16, State 1, Procedure GetAllPhones, Line 8
Невозможно обратиться к временным таблицам из функции.


My Sql Code:

автор
CREATE FUNCTION GetAllPhones(@id INT)
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @Result NVARCHAR(400)
SET @Result = ''
SELECT @Result = @Result + Phone FROM #tmp WHERE FirmID=@id
RETURN '"' + RTRIM(@Result) + '"'
END

SELECT
firms.KeyField as 'FirmID', firms.firms as 'FirmName', ph.phone as 'Phone'
INTO #tmp
FROM
firms
JOIN
phone ph ON firms.KeyField=ph.Firms
WHERE
ph.phone LIKE '9%'
and
NOT EXISTS(SELECT * FROM phone ph2 WHERE ph2.firms=firms.KeyField and ph2.phone NOT LIKE '9%')
ORDER BY 'FirmID'

SELECT
FirmID, FirmName, GetAllPhones(FirmID)
FROM
#tmp

DROP table #tmp
2 окт 12, 22:23    [13258633]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
see it? see it?
Guest
My Sql Code:


See forum name!:)
2 окт 12, 22:58    [13258764]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
Alexander2991
Member

Откуда:
Сообщений: 3
No, It's not MySql! I meant My MSSQl Code )
2 окт 12, 23:10    [13258826]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
Alexander Titkin
Member

Откуда: Москва
Сообщений: 91
Alexander2991,

SELECT
FirmID, FirmName, dbo.GetAllPhones(FirmID)
FROM
#tmp


схему не забываем указывать
2 окт 12, 23:36    [13258931]     Ответить | Цитировать Сообщить модератору
 Re: Не могу объединить поля, нужна помощь  [new]
Glory
Member

Откуда:
Сообщений: 104760
Alexander2991
Spasibo! It looks like it is what i was looking for!
But i have an error..
автор
Msg 2772, Level 16, State 1, Procedure GetAllPhones, Line 8
Невозможно обратиться к временным таблицам из функции.

И что непонятного написано в тексте сообщения ?
3 окт 12, 09:16    [13259478]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить