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

Откуда:
Сообщений: 84
Помогите написать процедуру(или можно без процедуры) объединения данных поп полю COD, c условием
что datetime, Fields, ID_TP одинаковые.
Заранее спасибо.
+
declare	@t table (
	Date	datetime
,	[Fields]	nvarchar(200)
,	[ID_TP]	nvarchar(200)
,	[COD]	nvarchar(200)
);
insert	into	@t
select '2011-05-10 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-10 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-10 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-10 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТН' union all
select '2011-05-10 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-11 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-11 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТН' union all
select '2011-05-11 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-11 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-11 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-12 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-12 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-12 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-12 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТН' union all
select '2011-05-12 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-12 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТВ ' union all
select '2011-05-13 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТВ ' union all
select '2011-05-13 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-13 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТН' union all
select '2011-05-13 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-13 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-13 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-16 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-16 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-16 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','В ' union all
select '2011-05-16 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТВ ' union all
select '2011-05-17 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТВ ' union all
select '2011-05-17 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-17 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-18 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-18 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-18 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ТВ ' union all
select '2011-05-19 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-05-20 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД' union all
select '2011-03-01 00:00:00.000','nvarchar2','18071343-46F7-4508-B736-96E60DEB7DF3','ТН' union all
select '2011-03-02 00:00:00.000','nvarchar2','18071343-46F7-4508-B736-96E60DEB7DF3','ТН' union all
select '2011-04-18 00:00:00.000','nvarchar2','1466B7F2-483C-4E23-8443-DA2ADD9697EB','ВД' union all
select '2011-04-19 00:00:00.000','nvarchar2','1466B7F2-483C-4E23-8443-DA2ADD9697EB','ВД'

select * from @t



Пользуюсь MSSQL 2000 SP3
18 май 11, 12:42    [10670741]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ето вы так обозвали поиск дубликатов ????
18 май 11, 12:45    [10670766]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
Коля77
Member

Откуда:
Сообщений: 84
Нет не поиск дубликатов. Забыл написать объединить через запятую.
Должно быть так(пример один день 2011-05-10)
select '2011-05-10 00:00:00.000','nvarchar2','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД,ТН,В' union all
select '2011-05-10 00:00:00.000','nvarchar3','AC9626E2-7542-4EB8-A364-0E34A76C3588','ВД,В' 
18 май 11, 12:47    [10670779]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Коля77, тут читали?
18 май 11, 12:48    [10670801]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
Коля77
Member

Откуда:
Сообщений: 84
Закралась ошибка или у меня алгоритм не правельный
CREATE FUNCTION dbo.GetDescription(@Date datetime, @Fields NVARCHAR(100), @ID_TP NVARCHAR(100))
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @Result NVARCHAR(4000)
SET @Result = ''
SELECT @Result = @Result + [Cod] + ',' FROM @t 
RETURN @Result
END
GO

SELECT DISTINCT [Date], Fields, ID_TP, dbo.GetDescription([Date], Fields, ID_TP) FROM @t
18 май 11, 13:32    [10671105]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
Коля77
Member

Откуда:
Сообщений: 84
Разобрался
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[GetDes_OUP](@Date datetime, @Fields NVARCHAR(100), @tp_ID NVARCHAR(100))
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @Result NVARCHAR(4000)
SET @Result = N''
SELECT @Result = @Result + case when len(@Result)>0 then N',' + [Cod] else [Cod] end 
FROM [STS_r-projsrv_1].[dbo].[Codes] WHERE [Date] = @Date and Fields=@Fields and tp_ID = @tp_ID
RETURN RTRIM(@Result)
END

18 май 11, 14:37    [10671629]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Честно говоря, большинство форумчан, и я в том числе, посмотрели ваш вопрос, и подумали "многа букаф".

Хотелось бы человеческой формулировки вопроса.
не так, что "у меня вот тут код, что в нем не так?",
а типа "я хочу того-то и того-то, как мне это сделать?"
19 май 11, 05:50    [10675580]     Ответить | Цитировать Сообщить модератору
 Re: Объединения данных  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Makar4ik, он жеж пишет в предыдущем сообщении: "Разобрался". Вопрос был про склейку текстовых строк выборки.
19 май 11, 09:09    [10675790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить