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

Откуда:
Сообщений: 147
Извените за глупый вопрос... не спец я в MSSQL
Вобщем нужно вернуть строку содержащую все выбранное по входящей переменной

create function GetBarCodes(@id_plu int)
returns varchar(254)
as
begin
Declare @Tek varchar(40), @Bars varchar(254)
Declare GB Scroll Cursor
for
Select BarCode
from T_BarCodes
Where ID_PLU=@id_plu
Order by 1
Open GB
Fetch First from GB
into @Tek;
While @@Fetch_Status = 0
Begin
set @bars:=@bars+@Tek+';'
End
Close GB
DeAllocate GB
Set NoCount Off
Return( @Bars )
end;
27 фев 08, 16:52    [5345446]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
CREATE FUNCTION GetBarCodes(@id_plu INT) RETURNS VARCHAR(254) AS
BEGIN
 DECLARE @Bars varchar(254);
 SET @Bars='';
 SELECT @Bars=@Bars+';'+BarCode
 FROM T_BarCodes
 WHERE ID_PLU=@id_plu
 ORDER BY 1;
 RETURN(@Bars);
END;
?
Версия сервера какая?
27 фев 08, 16:58    [5345494]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
MikleBess
Member

Откуда:
Сообщений: 147
2005
27 фев 08, 16:59    [5345520]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
Может, доработать FAQ?
Там в комментах есть про xml... просто надо добавить пункт про 2005-ый...
27 фев 08, 17:02    [5345535]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
MikleBess
Member

Откуда:
Сообщений: 147
Спасибо большое!!!! Заработало
а в 2000 тоже будетработать?
27 фев 08, 17:02    [5345536]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
CREATE FUNCTION GetBarCodes(@id_plu INT) RETURNS VARCHAR(254) AS
BEGIN
 DECLARE @Bars varchar(254);
 SET @Bars='';
 SELECT @Bars=@Bars+';'+BarCode
 FROM T_BarCodes
 WHERE ID_PLU=@id_plu
 ORDER BY 1;
 RETURN(@Bars);
END;
?
Версия сервера какая?
Поправка:
CREATE FUNCTION GetBarCodes(@id_plu INT) RETURNS VARCHAR(254) AS
BEGIN
 DECLARE @Bars varchar(254);
 SET @Bars='';
 SELECT @Bars=@Bars+';'+BarCode
 FROM T_BarCodes
 WHERE ID_PLU=@id_plu
 ORDER BY BarCode;
 RETURN(STUFF(@Bars,1,1,''));
END;
27 фев 08, 17:03    [5345548]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
MikleBess
2005
SELECT STUFF((SELECT ';'+BarCode FROM T_BarCodes ORDER BY BarCode FOR XML PATH('')),1,1,'');
27 фев 08, 17:06    [5345573]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Помогите идиоту создать функцию  [new]
MikleBess
Member

Откуда:
Сообщений: 147
Спасибо iap, это работает с 2005 версии
SELECT STUFF((SELECT ';'+BarCode FROM T_BarCodes ORDER BY BarCode FOR XML PATH('')),1,1,'');
[/quot]
А можно что-то такоеже не функцией, а прям в запросе для сервера 2000?
27 окт 11, 11:44    [11507583]     Ответить | Цитировать Сообщить модератору
 Re: Помогите идиоту создать функцию  [new]
iljy
Member

Откуда:
Сообщений: 8711
MikleBess,

нет
27 окт 11, 11:48    [11507610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить