SQL系统地更新相邻列中的单元格

时间:2016-08-03 21:02:21

标签: sql-server

Table Structures Illustrated

我的主要问题是如何遍历指定数量的列,并进行适当的检查:从给定的起始列开始,我达到了停止值(原始整数),当前单元格是否为空,是否存在右边的另一栏我可以接下来评估?

整体情况......

我有一个带有标识符列(fname,lname)的表,然后是用于保存数据的其他列。大多数单元格为NULL。当不为NULL时,单元格包含整数。

我想将第一个表格中的信息转换为第二个表格。

请参阅网站链接以查看我所描述的图片。 http://i.stack.imgur.com/iChCr.png

可以推断,从每个非空单元格开始,1替换该单元格的内容,并替换所有连续的相邻列,直到等于原始单元格的值的列数。因此,John Doe的C列保持3,在新的(或更新的?)表中,三列C,D,E的内容的值为1.

请注意,史蒂夫史密斯有重叠!方向要求将列C和D设置为1,但是来自列A的指令是用1替换A,B,C,D,E和F的内容。在这种情况下,列C和D得到sum,因此每个单元格等于2.随后的非重叠单元格E,F等于1(从A开始更新的最后一列)。

目前的纲要:

- 找到最后一个非空列

- 存储来自该列的单元格的值

- 开始使用该列的单元格并继续到最后一列     列或直到达到存储值的值,插入1(INT)

-re-scan table查找前面的第一个非空列     列现在填充数字

- 存储来自该列的单元格的值

- 使用该列开始,插入数字1:(1)表示与存储的数字相等的列数,或者直到到达最后一列,继续向右插入1,如果存储的数字的值为(2)尚未到达,但达到非空列,然后将1添加到该单元格中的现有值

根据我的搜索,我能够使用长而有序的case语句来获取最后一个非空列的名称,并使用long cowellce来获取相应单元格中的值,并将这些结果放入临时表。但那就是:/

建议表示赞赏,欢迎提出问题!

0 个答案:

没有答案