sql合并值问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 19:02:06
表A
分类 总数
A 20
B 10
C 23
D 45

表B
分类 已完成数
A 5
B 6

表C
分类 总数 已完成数
A 20 5
B 10 6
C 23 0
D 45 0

从表A、B,求表C,请高手指定。

select A.分类,A.总数,(case when B.已完成数 is null then 0 else B.已完成数 end ) as 已完成数 from A left join B on A.分类=B.分类

如果直接简单写成
select A.分类,A.总数,B.已完成数 from A left join B on A.分类=B.分类
那查询结果将是:
分类 总数 已完成数
A 20 5
B 10 6
C 23 null
D 45 null

select A.分类,A.总数,(case when B.已完成数 is null then 0 else B.已完成数 end ) as 已完成数 from A left join B on A.分类=B.分类