Рейтинг:
6
Wendelius
Вы имеете в виду, что вам нужно сгенерировать новое уникальное значение для вставленной строки? Если это так, я бы не стал делать это в коде, но позволил базе данных создать ключ для вас.
Один из способов сделать это-использовать определение идентификатора для столбца. Взгляните на это IDENTITY (Property) (Transact-SQL) | Microsoft Docs[^]
Goran Bibic
Я попробую это сделать
Выберите функции row_number() над (раздел по kolicina заказа Роба убыв) как redni_broj', Роба как Naziv artikla', сумма (литой(kolicina как поплавок)) как Kolicina' из (выбрать Роба, kolicina от mp_racun_roba объединить все выбрать Роба, kolicina от mp_faktura_roba) как alltables группы Роба
Ошибка Msg 8120, Уровень 16, состояние 1, строка 1
Столбец "alltables.kolicina" недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY.
Wendelius
Я не совсем понимаю, что ты хочешь этим сказать... Однако вы смешиваете обычный goup с оконной функцией, имеющей другую группировку, отсюда и ошибка.
Но, как уже было сказано, Если вы пытаетесь получить уникальное значение, приведенный выше запрос не будет выполнен, так как он не учитывает существующие значения. Он просто вычисляет номера строк
Goran Bibic
Да...просто 1,2,3,,,,,
Wendelius
Простите, но я не совсем понимаю ваш ответ.
Как уже было сказано, Если вам нужно уникальное нумерованное поле, я бы предложил позволить базе данных создать это значение, например, используя определение идентификатора.
Goran Bibic
Хорошо. Какой-нибудь пример?
Wendelius
Вы взглянули на ссылку, которую я дал? Он содержит небольшой пример.
Wendelius
Всегда пожалуйста!