我又一个表,记录四类信息,我想把其中的两类用外连接组织起来,而且他们存在对应关系。可我用下面的语句:select a.a1,b.a1 from sys tab1 as a full outer join tab1 as b on a.a2=b.a2 where
a.a3=1 and b.a3=2 and a.a4=4
来实现的时候却把不同时满足的记录给去掉了,和使用WHERE没有什么区别。
难道是SQL2000不支持同一个表的外连接吗?
不知道我说清楚了没有。恳请帮助!
a.a3=1 and b.a3=2 and a.a4=4
来实现的时候却把不同时满足的记录给去掉了,和使用WHERE没有什么区别。
难道是SQL2000不支持同一个表的外连接吗?
不知道我说清楚了没有。恳请帮助!
table1:
dz02 dz04 dz05 dz07
------------------------------------
1 1 101 001
1 1 102 002
1 0 103 null
2 1 a001 003
2 0 a002 null
2 0 a003 null
4 0 d001 null
4 1 d002 001
4 0 d003 null
------------------------------------
我想得到:
dz07 dz05(1) dz05(2) dz04
-----------------------------------
001 101 d002 1
002 102 null 1也就是说:
我要统计的是dz02=1 and dz02=4 and dz04=1 的数据,而且dz02=1 和dz02=4的数据根据dz07的内容来对应,如果dz02=4 中没有和dz02=1 中相对应的数据则dz05(2)用null来代替不知道我这样描述大家清楚了没有,望赐教。严重感谢!
from sys tab1 a LEFT OUTER JOIN tab1 b on a.a2=b.a2]
where a.a3=1 and b.a3=2 and a.a4=4
这样应该可以
selet a.dz05,b.dz05,a.dz07
from table1 a LEFT OUTER JOIN table b
on a.dz07= b.dz07 and a.dz02 = 1 and b.dz02 = 4 and a.dz04 = 1
感觉这个表有些乱
不过仍然谢谢,到时会给你分的
1,创建两个视图:
create view vw_bd as
select * from table1 where dz02='1' and dz04='1'
create view vw_fp as
select * from table1 where dz02='4' and dz04='1'
go
2,使用外连接:
SELECT *
FROM vw_bd as a LEFT OUTER JOIN
vw_fp as b ON a.dz07 = b.dz07
go