Использование SQL Server 2008, Visual Studio 2012 C# .NET4.5, обоюдного формыSQL Server 2008: обновление прибавка логика трудности
У меня есть сетка данных, которая содержит позволяет сказать, 20 записей, их поле вызова «NewPareto «это поле содержит 1-20 в виде целых чисел, в основном оценка лиги. Обратите внимание, что это поле должно содержать нули.
Если пользователь в сетке изменяет положение 9 в положение 3, мне нужен запрос, который будет прибегать к записи после позиции, которая была обновлена, в основном я думал просто увеличиваем на 1.
Однако я что это не работает, так как всегда есть разрыв, в котором когда-то было 9, и если я говорю что-то большее, чем 3, то уже существует 3, которые существуют.
Я думал об изменении оригинала от 3 до 4, а затем сказал increment> 4. но это все еще не разобрано в 9, кроме того, казалось бы, логика не работает при замене низкого числа до максимума.
Я пробовал некоторый запрос, что последний из них тоже не работает.
ALTER PROCEDURE [dbo].[IncrimentPareto]
@pg varchar(255),
@Pareto int,
@paretostatic int
AS
;With cte as
(select top 1000000 *
from ParetoMain
where PG = @pg and
NewPareto > @paretostatic and
NewPareto is not null
order by Sales desc)
UPDATE cte
SET @Pareto = NewPareto = @Pareto +1
это почти работает, но есть два 3s, которые все еще существуют в настоящее время, и он работает только после позиции 8, поскольку 9 не существует.
Надеюсь, ваши головы не будут измотаны, как у меня.
Резюме: запрос, который сортирует запись с новыми номерами лиги после определенной позиции перемещен вверх или вниз лиги
Хороший вопрос;) + 1 –