求助大神 两张表对比 补0 的问题

x308000017 2019-07-25 04:53:35
例如一个公司有 A,B,C,D,E 5个部门 在部门表里,
数据表是
A 30
C 40
怎么用sql算出来
A 30
B 0
C 40
D 0
E 0
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-07-25
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#部门表') is null
drop table #部门表
Go
Create table #部门表([dep] nvarchar(21))
Insert #部门表
select N'A' union all
select N'B' union all
select N'C' union all
select N'D' union all
select N'E'
GO
if not object_id(N'Tempdb..#数据表') is null
drop table #数据表
Go
Create table #数据表([dep] nvarchar(21),[num] int)
Insert #数据表
select N'A',30 union all
select N'C',40
Go
--测试数据结束
SELECT
#部门表.dep,
ISNULL(num, 0) AS num
FROM
#部门表
LEFT JOIN
#数据表
ON #数据表.dep = #部门表.dep;


听雨停了 2019-07-25
  • 打赏
  • 举报
回复

select a.部门名称,isnull(b.值,0) from 部门表 as a
left join 数据表  as b on a.部门名称=b.部门名称
右连接,然后isnull函数搞定

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧