各自主键上相互有重复
如
主键 主键
1 1 2 3 1 2 2 2
2 1 2 3 2 2 2 2
3 3 3 3 4 4 4 4
把1,2后面的加到前一个1,2上面
10 个解决方案
#1
select min(ID),PK1,PK2,sum(f1),sum(f2),sum(f3),sum(f4),sum(f5) from tb group by PK1,PK2
#2
两个表?没看明白,不好意思
#3
#4
#5
猜测lz意思如下
显示结果:
1 1 2 3 2 2 2
2 1 2 3 2 2 2
use tempdb;
/*
create table A
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into A(id,content1,content2,content3)
values
(1,1,2,3),
(2,1,2,3),
(3,3,3,3);
create table B
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into B(id,content1,content2,content3)
values
(1,2,2,2),
(2,2,2,2),
(4,4,4,4);
*/
select A.*,B.content1,B.content2,B.content3
from A
join B on A.id = B.id;
显示结果:
1 1 2 3 2 2 2
2 1 2 3 2 2 2
#6
如果楼上没理解错楼主意思的话,那就是正确的,就是一个联合查询的问题!楼主可以查一下,内联接,外联接!
#7
lf19820717和各位的回答对我的很有启发
不好意思,问题表述的不准确
表一 表二
主键 主键
1 1 2 3 1 2 2 2
2 1 2 3 2 2 2 2
3 3 3 3 4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
不好意思,问题表述的不准确
表一 表二
主键 主键
1 1 2 3 1 2 2 2
2 1 2 3 2 2 2 2
3 3 3 3 4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
#8
table1
主键id content1 content2 content3
1 1 2 3
2 1 2 3
3 3 3 3
table2
主键id content1 content2 content3
1 2 2 2
2 2 2 2
4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
主键id content1 content2 content3
1 1 2 3
2 1 2 3
3 3 3 3
table2
主键id content1 content2 content3
1 2 2 2
2 2 2 2
4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
#9
use tempdb;
/*
create table table1
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into table1(id,content1,content2,content3)
values
(1,1,2,3),
(2,1,2,3),
(3,3,3,3);
create table table2
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into table2(id,content1,content2,content3)
values
(1,2,2,2),
(2,2,2,2),
(4,4,4,4);
*/
select
ISNULL(t1.id,t2.id) as [id],
ISNULL(t1.content1,0) + ISNULL(t2.content1,0) as [content1],
ISNULL(t1.content2,0) + ISNULL(t2.content2,0) as [content2],
ISNULL(t1.content3,0) + ISNULL(t2.content3,0) as [content3]
from table1 as t1
full join table2 as t2 on t1.id = t2.id;
#10
嗯,楼上正解
#1
select min(ID),PK1,PK2,sum(f1),sum(f2),sum(f3),sum(f4),sum(f5) from tb group by PK1,PK2
#2
两个表?没看明白,不好意思
#3
#4
#5
猜测lz意思如下
显示结果:
1 1 2 3 2 2 2
2 1 2 3 2 2 2
use tempdb;
/*
create table A
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into A(id,content1,content2,content3)
values
(1,1,2,3),
(2,1,2,3),
(3,3,3,3);
create table B
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into B(id,content1,content2,content3)
values
(1,2,2,2),
(2,2,2,2),
(4,4,4,4);
*/
select A.*,B.content1,B.content2,B.content3
from A
join B on A.id = B.id;
显示结果:
1 1 2 3 2 2 2
2 1 2 3 2 2 2
#6
如果楼上没理解错楼主意思的话,那就是正确的,就是一个联合查询的问题!楼主可以查一下,内联接,外联接!
#7
lf19820717和各位的回答对我的很有启发
不好意思,问题表述的不准确
表一 表二
主键 主键
1 1 2 3 1 2 2 2
2 1 2 3 2 2 2 2
3 3 3 3 4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
不好意思,问题表述的不准确
表一 表二
主键 主键
1 1 2 3 1 2 2 2
2 1 2 3 2 2 2 2
3 3 3 3 4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
#8
table1
主键id content1 content2 content3
1 1 2 3
2 1 2 3
3 3 3 3
table2
主键id content1 content2 content3
1 2 2 2
2 2 2 2
4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
主键id content1 content2 content3
1 1 2 3
2 1 2 3
3 3 3 3
table2
主键id content1 content2 content3
1 2 2 2
2 2 2 2
4 4 4 4
最后的结果希望是
1 1+2 2+2 3+2
2 1+2 2+2 3+2
3 3 3 3
4 4 4 4
#9
use tempdb;
/*
create table table1
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into table1(id,content1,content2,content3)
values
(1,1,2,3),
(2,1,2,3),
(3,3,3,3);
create table table2
(
id int not null,
content1 int not null,
content2 int not null,
content3 int not null
);
insert into table2(id,content1,content2,content3)
values
(1,2,2,2),
(2,2,2,2),
(4,4,4,4);
*/
select
ISNULL(t1.id,t2.id) as [id],
ISNULL(t1.content1,0) + ISNULL(t2.content1,0) as [content1],
ISNULL(t1.content2,0) + ISNULL(t2.content2,0) as [content2],
ISNULL(t1.content3,0) + ISNULL(t2.content3,0) as [content3]
from table1 as t1
full join table2 as t2 on t1.id = t2.id;
#10
嗯,楼上正解