【发布时间】:2012-01-20 15:07:46
【问题描述】:
我想在我的表中添加一列,如下所示: 这只是表格结构的一个示例,实际表格超过 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
因此,每当“子组”中有一个值时,我希望 (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
在某些情况下,表格就像上面一样,上面有两个“标题”。在这种情况下,我还想要上面的第一行(150)。
这是光标的情况还是您有什么建议?
数据按No_排序
--编辑--
从第一行开始,然后贯穿整个表格: 有没有办法可以将 [No_] 的值存储在 [Subgroup] 为 '' 的位置? 然后在下面每一行的 (New_Column) 中插入此 [No_] 值,在 [Subgroup] 行中具有值。 而当 [Subgroup] 行为空时,该过程将继续进行,在 (New_Column) 中插入下一个 [No_] 值,即如果下一行在 [Subgroup] 中有值
这是我正在尝试做的更好的图像:
【问题讨论】:
-
你如何定义上面的行?? SQL Server 没有任何“内置”排序 - 除非 您 明确指定
ORDER BY子句,否则没有排序 - 所以也没有 row above。 ... -
请进一步扩展“上面有两个“标题”的位置”。请澄清“标题”和“上方”是什么。我只是不明白你的意思。谢谢!
-
在我的例子中,上面的行是 [Subgroup) 中的值上面的行。我正在考虑以某种方式使用过滤器 [where subgroup = '' ]?
-
@AceAlfred - 人们试图让您知道诸如“以上”之类的术语在 SQL 中是没有意义的,除非您定义了特定的顺序(例如,出于此查询的目的,它们是否按
No_排序?)
标签: sql sql-server tsql sql-server-2008-r2 database-cursor