表A
A1 A2 A3 A4 A5
计算机1 台 奔四 2G 500G
计算机2 台 奔四 2G 250G
计算机3 台 奔四 2G 250G
计算机4 台 奔四 2G 250G
表B
A1 B1
计算机1 4999
计算机3 4500 查询后的表A1 A2 A3 A4 A5 B1
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 4500
计算机4 台 奔四 2G 250G 0
请大虾们解决一下
A1 A2 A3 A4 A5
计算机1 台 奔四 2G 500G
计算机2 台 奔四 2G 250G
计算机3 台 奔四 2G 250G
计算机4 台 奔四 2G 250G
表B
A1 B1
计算机1 4999
计算机3 4500 查询后的表A1 A2 A3 A4 A5 B1
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 4500
计算机4 台 奔四 2G 250G 0
请大虾们解决一下
解决方案 »
- 请问数据类型text怎么使用?下午给分,不给分是小狗!
- ASP如何取分页存储中OUPUT的值
- 请教Arj命令路径过长的问题!
- 请高手帮忙:将Table转成字符串
- 在news表中有一个DataTime类型的字段,如果“日”不足2位,怎样在“日”的前面加0呢?我的SQL语句:
- 怎么在存储过程中返回一个由select语句查询出来的结果,并打印出来
- 请问怎么把数据库中所有表和视图的结构给导出来!
- 求救!谢谢先!进来看看,在线等!
- sql语句再问?请 CrazyFor(太阳下山明朝依旧爬上来) 进来
- 在VFP中怎么判断一个文件是否存在?如*.bak
- 请帮助简化tsql,太长,以至于超过了sql server 2005的长度限制
- 请好心人帮忙
from a left join b
on a.a1=b.a1
SELECT a.*,ISNULL(b.B1,0)
FROM 表A a LEFT JOIN 表B b
ON a.A1=b.A1
from TableA as ta
join TableB as tb
on ta.A1=tb.A1
select A1,A2,A3,A4,A5,NVL(B1,0) from A,B where A.A1(+)=B.A1;
go
insert a select '计算机1','台','奔四','2G','500G'
insert a select '计算机2','台','奔四','2G','250G'
insert a select '计算机3','台','奔四','2G','250G'
insert a select '计算机4','台','奔四','2G','250G'
go
create table B(A1 varchar(20),B1 int)
go
insert into b select '计算机1',4999
insert into b select '计算机3',4500
go
select a.*,isnull(b.b1,0) as b1
from a left join b
on a.a1=b.a1
go
drop table a,b;
go
/*结果
A1 A2 A3 A4 A5 b1
-------------------- ---- -------- ---- ------ -----------
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 4500
计算机4 台 奔四 2G 250G 0(4 行受影响)*/
FROM A LEFT JOIN B ON (A.A1=B.A1)
go
insert #A select '计算机1','台','奔四','2G','500G'
insert #A select '计算机2','台','奔四','2G','250G'
insert #A select '计算机3','台','奔四','2G','250G'
insert #A select '计算机4','台','奔四','2G','250G'
go
create table #B(A1 varchar(20),B1 int)
go
insert into #B select '计算机1',4999
insert into #B select '计算机3',4500
goselect A.A1,A.A2,A.A3,A.A4,A.A5,isnull(B.B1,0) B1 from #A A left join #B B
on A.A1=B.A1
A1 A2 A3 A4 A5
计算机1 台 奔四 2G 500G
计算机2 台 奔四 2G 250G
计算机3 台 奔四 2G 250G
计算机4 台 奔四 2G 250G
表B
A1 B1
计算机1 4999
计算机3 4500
计算机3 500 查询后的表 A1 A2 A3 A4 A5 B1
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 5000
计算机4 台 奔四 2G 250G 0
from a left join (select a1,sum(b1) as b1 from b group by a1) t
on a.a1=t.a1
declare @t table(A1 varchar(20),A2 varchar(3),A3 varchar(8),A4 varchar(3),A5 varchar(6))
insert @t select '计算机1','台','奔四','2G','500G'
insert @t select '计算机2','台','奔四','2G','250G'
insert @t select '计算机3','台','奔四','2G','250G'
insert @t select '计算机4','台','奔四','2G','250G'declare @t2 table(A1 varchar(20),B1 int)
insert into @t2 select '计算机1',4999
insert into @t2 select '计算机3',4500
insert into @t2 select '计算机3',500select a.*,sum(isnull(b.b1,0))
from @t a left join @t2 b
on a.a1=b.a1
group by a.a1,a.a2,a.a3,a.a4,a.a5/*
A1 A2 A3 A4 A5
-------------------- ---- -------- ---- ------ -----------
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 5000
计算机4 台 奔四 2G 250G 0
*/
go
insert a select '计算机1','台','奔四','2G','500G'
insert a select '计算机2','台','奔四','2G','250G'
insert a select '计算机3','台','奔四','2G','250G'
insert a select '计算机4','台','奔四','2G','250G'
go
create table B(A1 varchar(20),B1 int)
go
insert into b select '计算机1',4999
insert into b select '计算机3',4500select a.* , isnull(b.b1,0) b1 from a left join b on a.a1 = b.a1drop table a,b/*
A1 A2 A3 A4 A5 b1
-------------------- ---- -------- ---- ------ -----------
计算机1 台 奔四 2G 500G 4999
计算机2 台 奔四 2G 250G 0
计算机3 台 奔四 2G 250G 4500
计算机4 台 奔四 2G 250G 0(所影响的行数为 4 行)
*/