使用 SQL Server 2008、Visual Studio 2012 C#.NET4.5、win-forms
我有一个数据网格,其中包含 20 条记录,他们的字段称为“NewPareto”,该字段包含 1-20 作为整数,基本上是联赛得分。请注意,此字段必须允许空值。
如果网格中的用户将位置 9 更改为位置 3,我需要一个查询来在更新的位置之后重新处理记录,基本上我想简单地增加 1。
但是我发现这不起作用,因为过去 9 总是有一个差距,如果我说任何大于 3 的东西,那么已经存在一个 3。
我正在考虑将原来的 3 更改为 4,然后说增量 > 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
这几乎可行,但现在仍然存在两个 3,并且它仅在位置 8 之后有效,因为 9 不存在。
希望你的头不会像我的一样疲惫。
摘要:在某个位置上移或下移联盟后,对具有新联盟编号的记录进行排序的查询