Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хитрый UPDATE - не получается :-(( / 5 сообщений из 5, страница 1 из 1
22.02.2002, 11:09
    #32023744
Flamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый UPDATE - не получается :-((
Добрый день!

Такая проблема:

есть таблица



ID USER_ID GROUP_ID VALUE
1 1 0 aaa
2 1 0 bbb
3 1 0 ccc
4 2 0 ddd
5 2 0 eee



надо сделать UPDATE так, чтобы получилось для каждого USER_ID пронумерованные GROUP_ID, вот так:



ID USER_ID GROUP_ID VALUE
1 1 0 aaa
2 1 1 bbb
3 1 2 ccc
4 2 0 ddd
5 2 1 eee




Чего-то не приложу ума, как это сделать... Пробовал в цикле ( WHILE ), но медленно это да и неправильно... Подскажите, плз...
...
Рейтинг: 0 / 0
22.02.2002, 12:03
    #32023754
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый UPDATE - не получается :-((
select id, user_id, (select count(aaa.user_id) from aaa where user_id = aaa1.user_id and aaa1.id > id) as gr_id from aaa as aaa1 order by id
...
Рейтинг: 0 / 0
22.02.2002, 12:22
    #32023756
Flamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый UPDATE - не получается :-((
Спасибо большое, добрый Дед Маздай, но вот такую конструкцию, к сожалению, не запихнешь в UPDATE этой-же таблицы...
Пробовал - селектит здорово, а если пытаюсь сделать UPDATE - ругается:

Subquery returned more than 1 value.

Наверное я совсем деревянный
Просьба ногами не пинать...
...
Рейтинг: 0 / 0
22.02.2002, 12:27
    #32023758
Flamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый UPDATE - не получается :-((
Всем спасибо!

Да, я действительно деревянный
Ступил малость... Все работает. Еще раз выражаю свою признательность Деду Маздаю!
...
Рейтинг: 0 / 0
22.02.2002, 12:39
    #32023761
DAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрый UPDATE - не получается :-((
Если это для Вашего конкретного примера - то предлагаю:

update x set GROUP_ID=case when ID=USER_ID then 0
else case when (ID-USER_ID)%2 = 0
then case when ID%2+USER_ID%2=0 then 0 else 2 end else 1 end end
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хитрый UPDATE - не получается :-(( / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]