用insert的时候 比如insert into tb(t4,t5,t6) values(4,5,6) 在把数据填入后,t1,t2,t3列都成了NULL,这样是对的啊,它不需要数据啊
先弄清是插入还是更新插入的话 a1,a2,a3就为空。 更新的话用 update 麻烦些
我说的是更新。用UPDATE能做到吗?
我现在有许多人的购物消费的数据库(包括开始时间、结束时间,和商店的距离) 现在需要产生一个两维统计表:0分钟时距离为0 的有多少人,15分钟时距离为0.2 的有多少人,30分钟时距离为0.3 的有多少人,.....依此类推 用列a1,a2,a3..来表明距离轴,用行来标明不同时间。程序如下,输出时除了a1列正确的算出了数以外,其余都是null,想问问怎么样把其余列也自动计算出来?use SurveyInfodeclare @distance decimal(6,3), @times int, @tongji int, @sql varchar(500), @number int set @distance=0 set @times=0 set @number=1drop table results create table results ( a1 int )WHILE (@distance<=20) BEGIN WHILE (@times<=1440) Begin select @tongji=count(*) from dbo.VIEW2 --view2里是所用数据,所有人的购物距离,开始时间和结束时间 where (StartMin<=@times) AND (EndMin>@times) AND (离家距离>=@distance) AND (离家距离<(@distance+0.2)) insert results (a1) values (@tongji) --如何用循环自动填满a2...直到a102? select @times=@times+15 End
比如insert into tb(t4,t5,t6) values(4,5,6)
在把数据填入后,t1,t2,t3列都成了NULL,这样是对的啊,它不需要数据啊
我说的是更新。用UPDATE能做到吗?
我现在有许多人的购物消费的数据库(包括开始时间、结束时间,和商店的距离)
现在需要产生一个两维统计表:0分钟时距离为0 的有多少人,15分钟时距离为0.2 的有多少人,30分钟时距离为0.3 的有多少人,.....依此类推
用列a1,a2,a3..来表明距离轴,用行来标明不同时间。程序如下,输出时除了a1列正确的算出了数以外,其余都是null,想问问怎么样把其余列也自动计算出来?use SurveyInfodeclare @distance decimal(6,3), @times int, @tongji int, @sql varchar(500), @number int
set @distance=0
set @times=0
set @number=1drop table results
create table results
(
a1 int
)WHILE (@distance<=20)
BEGIN WHILE (@times<=1440)
Begin
select @tongji=count(*) from dbo.VIEW2 --view2里是所用数据,所有人的购物距离,开始时间和结束时间
where (StartMin<=@times)
AND (EndMin>@times) AND (离家距离>=@distance) AND (离家距离<(@distance+0.2))
insert results (a1) values (@tongji) --如何用循环自动填满a2...直到a102?
select @times=@times+15
End
select @distance=@distance+0.2
select @number=@number+1
select @sql='ALTER TABLE results ADD a'+convert(varchar(10),@number)+' int' --自动加一列
exec(@sql)
END
select * from results
add column a4 varchar(20),a5 varchar(20),a6 varchar(20)
这样a1,a2,a3都不变,而a4,a5,a6.默认为NUL.
可以改默认 加default就行了~~~