日期:2014-05-18 浏览次数:20561 次
create table a
(id varchar(5), ps int)
create table b
(id varchar(5), ps1 int)
create table c
(id varchar(5), ps2 int)
insert a
select '01', 12
union all select '02', 9
union all select '03', 7
insert b
select '04', 2
union all select '08', 19
union all select '07', 3
insert c
select '11', 0
union all select '02', 4
union all select '13', 5
Alter table a add rowid int identity(1,1)
Alter table b add rowid int identity(1,1)
Alter table c add rowid int identity(1,1)
select a.id, a.ps, b.id, b.ps1, c.id, c.ps2
from a JOIN b ON a.rowid = b.rowid
JOIN c ON a.rowid = c.rowid
Alter table a drop column rowid Alter table a drop column rowid Alter table a drop column rowid drop table a drop table b drop table c
------解决方案--------------------
不好意思,刚才没有看清楚,我得出来的结果跟楼主想要的好象有点出入。。。
因为楼主没有id列。所以需要加个id列来区分。。
我重新改了下
create table a(id varchar(10),ps int) insert into a select '01',12 insert into a select '02',9 insert into a select '03',7 create table b(id varchar(10),ps1 int) insert into b select '04',2 insert into b select '08',19 insert into b select '07',3 create table c(id varchar(10),ps2 int) insert into c select '11',0 insert into c select '02',4 insert into c select '13',5 select pk=identity(int,1,1),id ,ps into a1 from a select pk1=identity(int,1,1),id ,ps1 into b1 from b select pk2=identity(int,1,1),id ,ps2 into c1 from c select id,ps,id1[ ],ps1 [ ],id2 [ ],ps2[ ] from (select id,ps,bh=(select count(1) from a1 where pk<o.pk)+1 from a1 o)k, (select id [id1],ps1,bh1=(select count(1) from b1 where pk1<m.pk1)+1 from b1 m)l, (select id [id2],ps2,bh2=(select count(1) from c1 where pk2<n.pk2)+1 from c1 n)p where bh=bh1 and bh1=bh2