У меня возникла проблема, когда у меня есть таблица под названием Group
и таблица под названием Entry
. Таблица Group
имеет первичный ключ Id
. Таблица Entry
имеет первичный ключ Id
, внешний ключ к Group
таблице Id
под названием GroupId
. Таблица Entry
имеет еще одну колонку Weight
. Это Weight
является целым числом, и все, что он делает, это сказать мне вес сортировки, где в верхней части отображается нуль.Как добавить инкрементное число к каждому элементу в сгруппированной серии?
В основном, что произошло, кто-то сделал это Weight
поле nullable, когда была создана база данных. Теперь мне нужно пройти и настроить Weight
, чтобы соответствовать ограничению UNIQUE
, которое мы намерены добавить: UNQIUE(GroupId, Weight)
в таблицу Entry
. Это не позволяет двум записям Entry
иметь тот же вес, если они находятся в одной группе в основном.
Что запрос позволил бы мне пройти через все наши существующие данные и просто сосчитать Weight
колонки на каждом из записей на группы по групповой основе от 0 до N, где N является числом Entry
записей в Group
? Я хочу установить вес на основе Id
Entry
, так что самый низкий Id
для в данном Group
получает самое низкое Weight
.
Я хочу один большой запрос ol, который пройдет через таблицу Group
, объединит все записи Entry
, а затем перебирает их и назначает последовательность. Но я не знаю, с чего начать.
[ROW_NUMBER] (http://msdn.microsoft.com/en-us/library/ms186734.aspx) - SQL Server 2005+ –