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

Откуда:
Сообщений: 83
Добрый день,

ситуация такая:

Есть таблица
tv(id int, value varchar(20), id_tif int), tif(id int, iff int)

таблица tv
id value id_tif
1 v1 11
1 v2 33
2 v3 22
3 v4 44


таблица tif
id iff
11 1
22 1
33 2
44 2
связь такая
select * from tv t
join tif tf on t.id_iff = tf.id_iff

В зависимости от поля iff надо выводит из столбца value для id либо v1, v2
т.е. должно быть так
id value_iff11 value_iff22
1 v1 v3
2 v3
3 v4

подскажите как это реализовать?
28 апр 12, 18:04    [12486487]     Ответить | Цитировать Сообщить модератору
 Re: Схлопнуть в строку  [new]
Oleg_pl
Member

Откуда:
Сообщений: 1
San4ooo, у меня таже беда но я ее реши но такое рещение нельзя использовать так как мне хочется т.к у меня в условия должно передаваться масив параметров,

FUNCTION [dbo].[f_all_name_service]
(
@TerminalId int
)
RETURNS varchar(1024)
AS
BEGIN

DECLARE @result varchar(8000);
set @result = '';

DECLARE @name_service varchar(8000)

DECLARE name_service CURSOR
FOR
select pof.name
from dbo.place_of_service pof
where (pof.deleted is null or pof.deleted = 0)
and pof.terminalId = @TerminalId

OPEN name_service
FETCH NEXT FROM name_service into @name_service;


WHILE @@FETCH_STATUS = 0
BEGIN

SELECT @result = case when @result is null then '' else @result + ',' end + @name_service

FETCH NEXT FROM name_service into @name_service;



END
CLOSE name_service;
DEALLOCATE name_service;

RETURN ltrim(SUBSTRING(@result,2,8000));
END

есть немного лишнего и не нужного , но идея должна быть ясна но опять же если есть решения инное буду рад, т.к. этот пример для 1 значения
11 май 12, 14:19    [12536486]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить