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

Откуда:
Сообщений: 2
Народ, помогите с запросом, please, все мозги сломал...

есть таблица


ProductName SEQUENCE Description
-------- ----------- -----------
A 11 D1
A 12 D2
C 13 D3
A 14 D4
B 15 D5
C 16 D6
B 17 D7
C 18 D8
C 19 D9



Надо сделать группировку по ProductName и отсортировать группы по тому, как

появляется первое значение.Сортировка по productName не работает как надо.Также

надо поменять Sequence, чтобы номер соответствовал новому положению элемента в

таблице. Еще одна засада, я не знаю заранее первый номер Sequence(11), то есть его

надо прочитать и использовать как первое значение.

Результат должен выглядеть так;

ProductName SEQUENCE Description
-------- ----------- -----------
A 11 D1
A 12 D2
A 13 D4
C 14 D3
C 15 D6
C 16 D8
C 17 D9
B 18 D5
B 19 D7


dargon
22 сен 05, 03:48    [1900127]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом Group + Update  [new]
Аленочка
Member

Откуда: Владик
Сообщений: 2169
Group by ProductName
22 сен 05, 04:58    [1900138]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом Group + Update  [new]
Аленочка
Member

Откуда: Владик
Сообщений: 2169
А что за поле SEQUENCE? Каково его предназначение?
22 сен 05, 05:01    [1900141]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом Group + Update  [new]
Аленочка
Member

Откуда: Владик
Сообщений: 2169
dargon


... я не знаю заранее первый номер Sequence(11), то есть его

надо прочитать и использовать как первое значение.

dargon


declare @Q int

set @Q=(select top 1 Sequence from [Название таблицы])
select @Q
22 сен 05, 05:20    [1900143]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом Group + Update  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
???
declare @t table (ProductName varchar, [SEQUENCE] int, [Description] varchar(2))
declare @Res table (ProductName varchar, [SEQUENCE] int, [Description] varchar(2), i int identity primary key)
declare @MinSEQUENCE int

insert @t values('A', 11, 'D1')
insert @t values('A', 12, 'D2')
insert @t values('C', 13, 'D3')
insert @t values('A', 14, 'D4')
insert @t values('B', 15, 'D5')
insert @t values('C', 16, 'D6')
insert @t values('B', 17, 'D7')
insert @t values('C', 18, 'D8')
insert @t values('C', 19, 'D9')

select @MinSEQUENCE = min([SEQUENCE]) from @t
insert @Res (ProductName, [SEQUENCE], [Description])
select t1.*
	from @t t1 join
	(select ProductName,
		min([SEQUENCE]) as min_SEQUENCE
		from @t
		group by ProductName) t2 on t1.ProductName = t2.ProductName
	order by t2.min_SEQUENCE

update @Res set [SEQUENCE] = @MinSEQUENCE + i - 1

select ProductName,
	[SEQUENCE],
	[Description]
	from @Res order by 2
22 сен 05, 08:19    [1900252]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом Group + Update  [new]
dargon
Member

Откуда:
Сообщений: 2
tpg, Аленочка , thanks!!!

dargon
22 сен 05, 16:19    [1902464]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить