哈哈,有人不太喜欢SELECT。
以下是引用zengjun81357在2013-1-21 21:00:43的发言:
谢谢楼上的回复,只是用这么一段程序也不太简洁,还有点不好懂。
方法一:按照2楼的说法,对结果表bm_ry 进行汇总操作total to 临时表1,然后再 appe from 临时表1,比较明了。
方法二:原表增加一个公共字段:公司,然后两条sele 命令
SELECT 公司,deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司,deptname INTO TABLE bm_ry
Insert INTO bm_ry SELECT 公司,SUM(IIF(psncl='随意',1,0)) as deptname,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司
最后需要将 汇总行 部门名称 '0' 修改为 '合计'
谢谢楼上的回复,只是用这么一段程序也不太简洁,还有点不好懂。
方法一:按照2楼的说法,对结果表bm_ry 进行汇总操作total to 临时表1,然后再 appe from 临时表1,比较明了。
方法二:原表增加一个公共字段:公司,然后两条sele 命令
SELECT 公司,deptname as 部门名称,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司,deptname INTO TABLE bm_ry
Insert INTO bm_ry SELECT 公司,SUM(IIF(psncl='随意',1,0)) as deptname,COUNT(*) as 人数,SUM(IIF(psncl='行政管理人员',1,0)) as 行政管理人员,SUM(IIF(psncl='财务管理人员',1,0)) as 财务管理人员,SUM(IIF(psncl='营销管理人员',1,0)) as 营销管理人员,SUM(IIF(psncl='采购供应人员',1,0)) as 采购供应人员,SUM(IIF(psncl='人力资源管理人员',1,0)) as 人力资源管理人员,SUM(IIF(psncl='信息资源管理人员',1,0)) as 信息资源管理人员,SUM(IIF(psncl='工程技术人员',1,0)) as 工资技术人员,SUM(IIF(psncl='生产管理人员',1,0)) as 生产管理人员,SUM(IIF(psncl='生产操作人员',1,0)) as 生产操作人员,SUM(IIF(psncl='服务人员',1,0)) as 服务人员 from ryhmc group by 公司
最后需要将 汇总行 部门名称 '0' 修改为 '合计'
其实不用改来改去那么复杂,借你的代码修改一下:不需要公司这个字段,因为你输出结果中没有公司,可以用UNION子句连接分部门统计和合计两个部分。分部门统计部分其它代码与你已有的相同(除了不要“公司”),然后只要按部门分组统计即可。然后下半段是:
..... ;(分部门统计部分)
UNION ALL ;
SELECT "合计", COUNT(*) AS 人数, SUM(IIF(psncl='行政管理人员',1,0)) AS 行政管理人员, ... ;
FROM 表文件名
我没有测试过,你可以试试看。