如何从上面的行中选择信息?

Ace*_*red 4 sql t-sql sql-server cursor sql-server-2008-r2

我想在我的表格中添加一列,如下所示:这只是表格结构的一个示例,实际表格超过 10.000 行。

No_   Name       Account_Type    Subgroup     (New_Column)
100   Sales      3               
200   Underwear  0               250          *100
300   Bikes      0               250          *100
400   Profit     3                             
500   Cash       0               450          *400
Run Code Online (Sandbox Code Playgroud)

因此,每次在“子组”中有一个值时,我都希望 (New_Column) 从上面的行中获取值 [No_]

No_   Name       Account_Type    Subgroup     (New_Column)
100   Sales      3               
150   TotalSales 3
200   Underwear  0               250          *150
300   Bikes      0               250          *150
400   Profit     3                             
500   Cash       0               450          *400
Run Code Online (Sandbox Code Playgroud)

在某些情况下,表格与上面类似,上面有两个“标题”。在这种情况下,在这种情况下,我还想要上面的第一行(150)。

这是光标的情况还是您有什么建议?

数据按No_排序

- 编辑 -

从第一行开始,然后遍历整个表:有没有办法可以存储 [No_] 的值,其中 [Subgroup] 是 ''?然后在下面每一行的 (New_Column) 中插入这个 [No_] 值,在 [Subgroup] 行中有值。当 [Subgroup] 行为空时,该过程将继续进行,在 (New_Column) 中插入下一个 [No_] 值,即如果下一行在 [Subgroup] 中有值

这是我正在尝试做的更好的图像: 在此处输入图片说明

Ace*_*red 5

SQL Server 2012 建议使用窗口偏移函数。在这种情况下:滞后

像这样的东西:

SELECT [No_]
  ,[Name]
  ,[Account_Type]
  ,[Subgroup]
  ,LAG([No_]) OVER(PARTITION BY [Subgroup]
ORDER BY [No_]) as [PrevValue]
FROM table
Run Code Online (Sandbox Code Playgroud)

这是来自 MS 的示例:http : //technet.microsoft.com/en-us/library/hh231256.aspx