Re: Как уместить это в один запрос?
От: Чувахин Андрей Николаевич Украина  
Дата: 17.05.02 14:50
Оценка:
Здравствуйте Abbat, Вы писали:

A> Тема такая..

A>Есть база данных.. в ней есть поле типом uniqueidentifier. Причем GUID формируеться не в БД.. а в COM объекте(тоесть в таблице есть совпадающие GUIDы).
A>Тык задача в том.. чтобы подсчитать кол-во уникальных GUIDов в данном столбце..

A>Практически надо реализовать запрос вида:

A>SELECT COUNT(DISTINCT <имя поля>) FROM <имя таблицы>
A>, тока тут проблема в том что COUNT не работает с uniqueidentifier
A>(The count-unique aggregate operation cannot take a uniqueidentifier data type as an argument.
A>)
A>Если кто сталкивался.. подскажите плз.. а то уже мозги закипают
A>Заранее спасибо!

CREATE TABLE #aa1
(UniqueColumn UNIQUEIDENTIFIER DEFAULT NEWID(),
Characters VARCHAR(10) )
GO
INSERT INTO #aa1 VALUES ('{F6D3AFBC-60A4-4D1D-8FED-2B7FF14BD9A2}', 'abc')
INSERT INTO #aa1 VALUES ('{438E3737-002B-457B-AD52-F7AC4E81E042}', 'abc')
INSERT INTO #aa1 VALUES ('{DFD9E130-FB24-4314-B489-4B9256F2E492}', 'abc')
INSERT INTO #aa1 VALUES ('{F6D3AFBC-60A4-4D1D-8FED-2B7FF14BD9A2}', 'abc')
GO

select * from #aa1

select * from #aa1 where cast(UniqueColumn as varchar(40)) in(select cast(UniqueColumn as varchar(40)) from #aa1 group by cast(UniqueColumn as varchar(40)) having count(cast(UniqueColumn as varchar(40))) = 1)

drop table #aa1
Желаю успехов, Андрей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.