紧急求救一sql语句,谢谢各位

qdmis 2006-04-17 03:25:52
表mm:

工号 姓名 岗位类别 是否受奖 单位 部门 金额
001 yhy 管理岗 1 公司管理 信息通讯中心 1000
001 yhy 生产岗 1 公司管理 信息通讯中心 1000

现在要求汇总报表:
部门 总人数 管理受奖人数 生产受奖人数 金额
信息通讯中心 120 80 40 120000
现在能实现:select count(工号) as a,sum(金额) from mm group by 单位,部门主要是根据单位,部门来统计,现在要求分岗位类别,请问怎么处理?最好是一条sql语句,谢谢各位
...全文
226 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2006-04-19
  • 打赏
  • 举报
回复
将你的表结构及部分数据发上来看看(按前面的表结构及测试数据就应该是你要的)
qdmis 2006-04-19
  • 打赏
  • 举报
回复
自己顶,怎么没人回答啊
柯本 2006-04-18
  • 打赏
  • 举报
回复
oracle用下方法:
--建立测试环境
create table mm(工号 varchar(5),姓名 varchar(10),岗位类别 varchar(20),
是否受奖 char(1),单位 varchar(10),部门 varchar(32),金额 integer)
insert into mm
select '001','yhy','管理岗',1,'公司管理','信息通讯中心',1000 from dual
union all
select '001','yhy','生产岗',1,'公司管理','信息通讯中心',1000 from dual
union all
select '001','yhy','生产岗',1,'公司管理','信息通讯中心1',1000 from dual
--代码
select 部门,sum(1) 总人数, sum(decode(岗位类别,'管理岗', 1, 0 )) 管理受奖人数,
sum(decode(岗位类别,'生产岗', 1, 0)) 生产受奖人数,sum(金额)
from mm
group by 部门
---结果:
部门 总人数 管理受奖人数 生产受奖人数 SUM(金额)
-------------------------------- ---------- ------------ ------------ ----------
信息通讯中心 2 1 1 2000
信息通讯中心1 1 0 1 1000
qdmis 2006-04-18
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,我在我这里不行啊,我用的是oracle数据库
qdmis 2006-04-18
  • 打赏
  • 举报
回复
谢谢各位,顺便问一个问题:
有一个考勤表:怎么将考勤状态在dbgrideh中显示为特别符号?

比如:0显示+,1显示-,2显示#等
todouwang 2006-04-18
  • 打赏
  • 举报
回复
总人数要计算不受奖的,但受奖人数不计算不受奖的
是这样的呀
qdmis 2006-04-18
  • 打赏
  • 举报
回复
还有一个问题:总人数要计算不受奖的,但受奖人数不计算不受奖的
qdmis 2006-04-18
  • 打赏
  • 举报
回复
我根据以上语句得出的都是零啊
todouwang 2006-04-17
  • 打赏
  • 举报
回复
select 部门,总人数=sum(1),管理受奖人数=sum(case when 岗位类别='管理岗' then 1 else 0 end),
生产受奖人数=sum(case when 岗位类别='生产岗' then 1 else 0 end),金额=sum(金额)
//这里加个"金额=",
from mm
group by 部门
todouwang 2006-04-17
  • 打赏
  • 举报
回复
--结果
部门 总人数 管理受奖人数 生产受奖人数
-------------------------------- ----------- ----------- ----------- -----------
信息通讯中心 2 1 1 2000
信息通讯中心1 1 0 1 1000
todouwang 2006-04-17
  • 打赏
  • 举报
回复
--建立测试环境
create table mm(工号 varchar(5),姓名 varchar(10),岗位类别 varchar(20),
是否受奖 bit,单位 varchar(10),部门 varchar(32),金额 int)
insert into mm
select '001','yhy','管理岗',1,'公司管理','信息通讯中心',1000
union all
select '001','yhy','生产岗',1,'公司管理','信息通讯中心',1000
union all
select '001','yhy','生产岗',1,'公司管理','信息通讯中心1',1000
--代码
select 部门,总人数=sum(1),管理受奖人数=sum(case when 岗位类别='管理岗' then 1 else 0 end),
生产受奖人数=sum(case when 岗位类别='生产岗' then 1 else 0 end),sum(金额)
from mm
group by 部门
--删除测试环境
drop table mm
msdzwd 2006-04-17
  • 打赏
  • 举报
回复
group by 单位,部门,岗位
enjoymyself 2006-04-17
  • 打赏
  • 举报
回复
select 单位, 部门,岗位,count(工号),sum(金额)
from mm
group by 单位,部门,岗位
FCU 2006-04-17
  • 打赏
  • 举报
回复
select count(工号) as a,sum(金额) from mm group by 单位,部门,岗位

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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