Select AID,AA,IsNull(sum(IsNull(BA,0)),0)
From A Left join B on AID = B_AID
From A Left join B on AID = B_AID
解决方案 »
- 这句存储过程为什么遇到值里有0的情况就自动过滤这条了?
- 临时表的建立
- 8.0 Database Reconciler FAILURE 0x80004005
- SQL2005 代理的问题
- 关于对NULL处理的一个小问题
- 关于(if---else)
- <<SQL编程实用大全>>,<<VB.NET与SQL2000高级编程>>,多要买...想问数据库区的兄弟意见..听说SQL2003快出来勒,钱都花大2000上勒对不?穷学生
- 棘手的问题...行列转化问题...
- 请大家多提点思路 广域网问题 直接用链接服务器的方法可行吗 用分布式事务可行吗 部分地区用拨号连
- 简单问题(来拿分吧)
- 加分(我也有一个SQL语句要写,请大家帮忙!)
- 存储过程的问题,请各位大虾帮忙看看。
on b.B_AID=a.AID
表A的AID为字符,表B的b_AID为数字,所以如果按你的表,应该如下写select a.*,isnull(sum(b.ba),0) as ba
from 表A a left join 表B b
on right(a.AID,len(a.AID)-1)=b.b_AID
group by a.AID,a.AA
declare @表A table(AID varchar(2),AA int)
insert into @表a
select 'A1',30
union all select 'A2',40
union all select 'A3',50declare @表B table(BID int,BA int,b_AID int)
insert into @表B
select 1,20,1
union all select 2,3,1
union all select 3,4,2
union all select 4,5,null
union all select 5,6,2
union all select 6,10,null--得到你要求的结果
select a.*,isnull(sum(b.ba),0) as ba
from @表A a left join @表B b
on right(a.AID,len(a.AID)-1)=b.b_AID
group by a.AID,a.AA
From A Left join B on AID = B_AID
group by AID,AA
---- ----------- -----------
A1 30 23
A2 40 10
A3 50 0(所影响的行数为 3 行)