求一SQL语句,解决立马结帖
现有两张表他们的表结构都一样,如T1(name varchar(20) primary key,value int,t time)
表中的数据为
T1
a1 n1 t1
a2 n2 t2
T2
a1 n3 t3
a3 n4 t4
现要求得到如下的数据:
a1 n1 t1
a1 n3 t3 (t3=t1-7)
a2 n2 t2
a2 0 t2'(t2'=t2-7)
a3 0 t4'(t4'=t4+7)
a3 n4 t4
如果上式的t3!=t1-7
则要多一组数据
a1 0 t3' (t3'=t3-7)
a1 n3 t3
不要求一句SQL完成,可用存储过程等;
这要怎么搞?谢谢~~~~
问题点数:50、回复次数:5Top
1 楼wgsasd311(自强不息)回复于 2006-03-08 10:21:56 得分 0
没看懂Top
2 楼gimy007(逮猫的耗子)回复于 2006-03-08 10:32:04 得分 0
就是要求T1里的数据与T2里的数据进行比较,其中T1表里的时间范围肯定比T2表里的少7天,如果
T1.name=T2.name 且T1.time=T2.time-7 就把它们一起罗列,否则用0补上显现出来Top
3 楼gimy007(逮猫的耗子)回复于 2006-03-08 10:32:44 得分 0
不知道我有没有讲清楚~~~Top
4 楼Lgr_Annie(Annie)回复于 2006-03-08 10:40:35 得分 50
先建视图:V1(name ,value,t )
select name,0,t-7 from t1
union all
select name,0,t+7 from t2 where name not in (select name from t1 where t1.t-7=t2.t)
union all
select name,value,t from t1
union all
select name,value,t from t2
结果集
select distinct name ,value,t from V1 order by name
Top
5 楼gimy007(逮猫的耗子)回复于 2006-03-08 10:51:07 得分 0
恩,不错~~~
我试一下~~~Top




