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

Откуда:
Сообщений: 265
Подскажите, почему такое получается, на создание когда у меня нету записи SubSectionID у меня происходит следующее добавляется 1.3, а уже потом только будет идти 1.3.1, 1.3.2 и тд, подскажите почему он сразу не выдает мне 1.3.1? как сделать что бы работало корректно? Может стоит воспользоваться другими нумерациями? (Ntile, Rank, Dense_Rank)

declare @Point varchar(50)

set @Point = '1.3'

SELECT TOP 1 @Point = @Point + '.'+ cast((ROW_NUMBER () OVER(PARTITION BY SubSectionID ORDER BY Received ASC)) as VARCHAR(50)) 
	from dbo._ExpensesBodies where EstimateID = @Estimate AND SubSectionID = @SubSection AND GroupID = @Group
    ORDER BY Received DESC
30 янв 17, 21:15    [20163780]     Ответить | Цитировать Сообщить модератору
 Re: ROW_NUMBER  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Разобрался, в условии косяк был :)

Сорри, за спам.
30 янв 17, 21:30    [20163823]     Ответить | Цитировать Сообщить модератору
 Re: ROW_NUMBER  [new]
iljy
Member

Откуда:
Сообщений: 8711
Pabl0,

select @x = ... имеет одно пренеприятное свойство: если выборка пустая, то значение просто ни разу изменено не будет. Лучше использовать set @x = (select ...), а форму с select имеет смысл использовать только если у вас несколько значений сразу надо присвоить.
30 янв 17, 21:43    [20163844]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить