SQL怎么做到让同一列数据的特定一行数据减去其他行数据 5
简化的数据表如下:时间地点人123北京A454北京B123广州A454上海C123北京A454上海D我想要将数据表的时间列,比如产生个新列:时间2时间3时间4时间5时间6...
简化的数据表如下:
时间 地点 人
123 北京 A
454 北京 B
123 广州 A
454 上海 C
123 北京 A
454 上海 D
我想要将数据表的时间列,比如产生个新列:
时间2 时间3 时间4 时间5 时间6
null null null null null
331 null null null null
0 -331 null null null
331 0 331 null null
0 -331 0 -331 null
331 0 331 0 331
这个可以用SQL实现吗?(以上的运算是:比如时间2=其他行-第一行,时间3=其他行(除第一第二)-第二行,依此类推) 展开
时间 地点 人
123 北京 A
454 北京 B
123 广州 A
454 上海 C
123 北京 A
454 上海 D
我想要将数据表的时间列,比如产生个新列:
时间2 时间3 时间4 时间5 时间6
null null null null null
331 null null null null
0 -331 null null null
331 0 331 null null
0 -331 0 -331 null
331 0 331 0 331
这个可以用SQL实现吗?(以上的运算是:比如时间2=其他行-第一行,时间3=其他行(除第一第二)-第二行,依此类推) 展开
1个回答
展开全部
---首先我假设你的表名为cssj
select row_number() over (order by (SELECT 0)) as 序号, 时间,NULL 时间2,NULL 时间3,NULL 时间4,NULL 时间5,NULL 时间6 INTO cssj1 from cssj
declare @tmp varchar(50)
declare y_curr cursor for
SELECT 序哗岩扰号 FROM cssj1
open y_curr
fetch next from Y_curr into @tmp
while(@@fetch_status=0)
begin
UPDATE cssj1 SET 时间2= 时间-(SELECT 时间 FROM cssj1 WHERE 序号=1 AND 序号<@tmp),时间3=时间-(SELECT 时间 FROM cssj1 WHERE 序号乱旦=2 AND 序号<@tmp),时间4=时间-(SELECT 时间 FROM cssj1 WHERE 序号=3 AND 序号<@tmp) ,时间5=时间-(SELECT 时间 FROM cssj1 WHERE 序号=4 AND 序号<@tmp) ,时间6=时间-(SELECT 时间 FROM cssj1 WHERE 序号=5 AND 序号<@tmp) WHERE 序号=@tmp
fetch next from y_curr into @tmp
end
close y_curr
deallocate y_curr
SELECT 时间2, 时枣渣间3, 时间4, 时间5, 时间6 FROM cssj1
select row_number() over (order by (SELECT 0)) as 序号, 时间,NULL 时间2,NULL 时间3,NULL 时间4,NULL 时间5,NULL 时间6 INTO cssj1 from cssj
declare @tmp varchar(50)
declare y_curr cursor for
SELECT 序哗岩扰号 FROM cssj1
open y_curr
fetch next from Y_curr into @tmp
while(@@fetch_status=0)
begin
UPDATE cssj1 SET 时间2= 时间-(SELECT 时间 FROM cssj1 WHERE 序号=1 AND 序号<@tmp),时间3=时间-(SELECT 时间 FROM cssj1 WHERE 序号乱旦=2 AND 序号<@tmp),时间4=时间-(SELECT 时间 FROM cssj1 WHERE 序号=3 AND 序号<@tmp) ,时间5=时间-(SELECT 时间 FROM cssj1 WHERE 序号=4 AND 序号<@tmp) ,时间6=时间-(SELECT 时间 FROM cssj1 WHERE 序号=5 AND 序号<@tmp) WHERE 序号=@tmp
fetch next from y_curr into @tmp
end
close y_curr
deallocate y_curr
SELECT 时间2, 时枣渣间3, 时间4, 时间5, 时间6 FROM cssj1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询