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

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

есть таблица



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
Хитрый UPDATE - не получается :-((
    #32023754
Фотография Дед Маздай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Хитрый UPDATE - не получается :-((
    #32023756
Flamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, добрый Дед Маздай, но вот такую конструкцию, к сожалению, не запихнешь в UPDATE этой-же таблицы...
Пробовал - селектит здорово, а если пытаюсь сделать UPDATE - ругается:

Subquery returned more than 1 value.

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

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

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
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хитрый UPDATE - не получается :-((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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