介绍先查出入职的人数
怎么在Mysql中横向拼接字段?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
先查出入职的人数
SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,入职时间,!=,& # 39;& # 39; 一、才能入职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称
查询记录
在查询出离职的人数sql:
SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,离职时间,!=,& # 39;& # 39; 一、才能离职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称
结果集
我想要的数据是这样的
我有了以下的尝试
1。我将两个查询结果看成两个表,使用了左join ,不瞒您说数据格式是我想要的但是想了想要是右表的记录比较多使用这个不就会少数据吗(右同理)
2。我使用联盟all 这个不是想要的数据直接将两个结果相加竖向拼接
3。我使用了如同这种select * from a b 这个结果是笛卡尔积,两个表相乘的结果
以上方法的sql就不贴出意思应该明确了
我不信我就一直问百度,百度终于有了回答我就尝试了一番
1。将入职sql处理如下
SELECT a.dept, a.rcNumber, 0, as lcNumber 得到(SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,入职时间,!=,& # 39;& # 39; 一、才能入职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称),一个
离职sql处理如下:
SELECT a.dept, a.lcNumber, 0, as rcNumber 得到(SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,离职时间,!=,& # 39;& # 39; 一、才能离职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称),一个
在外面包一层也可不包直接在原sql上加我是为不破坏基本语句这样当然不够
2。将两个语句进行竖向拼接合并联合拼和接
SELECT dept ,总和(cm_1), as rcNumber,总和(cm_0), as lcNumber 从(,SELECT c.id c.dept,总和(c.lcNumber), as cm_0, c.rcNumber as cm_1 得到; (SELECT a.dept a.rcNumber 0, as lcNumber 得到(SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,入职时间,!=,& # 39;& # 39; 一、才能入职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称),a), c GROUP BY c.dept UNION ALL SELECT d.id、d.dept d.lcNumber as  cm_0,总和(d.rcNumber), as cm_1 得到; (SELECT a.dept a.lcNumber 0, as rcNumber 得到(SELECT dept ,计数(1),rcNumber 得到员工表, WHERE (,离职时间,!=,& # 39;& # 39; 一、才能离职职时间,IS NOT 零),以及DATE_FORMAT(入职时间,,& # 39;%猴Y - % # 39;)=, & # 39; 2019 - 09 & # 39; GROUP BY 部门ID ORDER BY 部门名称),a), d GROUP BY d.dept), t GROUP BY t.dept ORDER BY t.id
最终就得到了我想要的结果
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。