sql - 操作结果以将行显示为列

标签 sql tsql

我有两张 table 。 表A包含部门列表,共有20个。

看图片

enter image description here

表 B 包含表 A 中每个部门至少 1 行,有些包含一些行。

看图片

enter image description here

我想要的是从 A 和 B 创建的第三个表,它基本上列出了每个部门,然后列出了全职和兼职的人数。例如,如果在表 b 中找到一个部门,其中只有全日制或兼职的数字(例如部门 D),那么我希望该表显示 0(零)而不是将其留空。

看图片

enter image description here

有人可以就此提出建议吗?

编辑 例如,如果某个部门没有“兼职”,则意味着其兼职员工数量通常为零。

最佳答案

您想要 PIVOT

select *
from (tableb) s
pivot (Max(staffno) for employee_class in ([Full Time],[Part Time])) p

关于sql - 操作结果以将行显示为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13031846/

相关文章:

sql - 查找上周日

sql - 来自单个表的多个 Count()

mysql - 如何在mysql中的where条件下使用动态数据更新表

MySQL 生成许多新的结果集

SQL - 2010 年仅进行过 dentry 检查的所有患者

tsql - 在值中每第 n 个字符添加逗号

SQL Hive - MD5 哈希

sql - 在 SQL 查询的换行中添加回车的标准方法是什么?

sql-server - 什么是行锁、页锁和表锁?当它们被收购时?

sql-左连接-计数