多个分组 该如何做?

sxbug 2011-07-07 11:38:35
数据表:
编号 设备名称 所在集团 使用单位 是否过期 类型 是否外送 计划时间
001 设备1 集团1 单位1 F A F 2011-7-1
002 设备2 集团1 单位2 F B F 2011-6-4
003 设备3 集团2 单位3 T C F 2011-5-3
004 设备4 集团1 单位1 F A T 2011-4-1

我要得到这样的一组数据

每个集团 的 每个单位 A类设备有多少 B类设备有多少 C类设备有多少 分组设计是多少 过期的多少 外送的多少

就是要打印这样的一个表:

单位数据 集团1______________ 集团2
———— A B C 合计________A B C 合计
单位1 6 0 7 13 ———— 1 1 0 2
单位2 3 1 2 6 ————2 0 1 3


请指教,谢谢

...全文
81 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingjian192003 2011-07-15
  • 打赏
  • 举报
回复
with t as 
(
select '001' seq,'设备1' sb_name,'集团1' jituan,'单位1' units,'F' guoqi,'A' sbtype,'F' waisong,'20110701' playdate FROM DUAL union all
select '002' seq,'设备2' sb_name,'集团1' jituan,'单位2' units,'F' guoqi,'B' sbtype,'F' waisong,'20110604' playdate FROM DUAL union all
select '003' seq,'设备3' sb_name,'集团2' jituan,'单位3' units,'T' guoqi,'C' sbtype,'F' waisong,'20110405' playdate FROM DUAL union all
select '004' seq,'设备4' sb_name,'集团1' jituan,'单位1' units,'F' guoqi,'A' sbtype,'T' waisong,'20110403' playdate FROM DUAL
)
SELECT
SEQ,SB_NAME,units,
SUM(DECODE(SBTYPE,'A',1)) sum_a,
sum(decode(sbtype,'B',1))sum_b,
sum(decode(sbtype,'C',1))sum_c,
sum(decode(GUOQI,'F',1))ok_f,
sum(decode(guoqi,'t',1))ok_t
FROM T
GROUP BY SEQ,UNITS,sb_name;
jym2002 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kerafan 的回复:]
SQL code

sum(case when ... then 1 else 0 end)
..
..
..
from
where 计划时间 < to_date('2011-08-01','yyyy-mm-dd')
group by 单位名称
[/Quote]
得学会思考,大家已经说的这么明确了

select
sum(case when 类型='A' and 所在集团='集团1' then 1 else 0 end) "集团1--A类",
sum(case when 类型='A' and 所在集团='集团1' then 1 else 0 end) "集团1--B类",
sum(case when 类型='A' and 所在集团='集团1' then 1 else 0 end) "集团1--C类",
sum(case when 所在集团='集团1' then 1 else 0 end) "集团1合计",
sum(case when 类型='A' and 所在集团='集团2' then 1 else 0 end) "集团2--A类",
sum(case when 类型='A' and 所在集团='集团2' then 1 else 0 end) "集团2--B类",
sum(case when 类型='A' and 所在集团='集团2' then 1 else 0 end) "集团2--C类",
sum(case when 所在集团='集团2' then 1 else 0 end) "集团2合计"
from table_name
where 计划时间 < to_date('2011-08-01','yyyy-mm-dd')
group by 使用单位
order by 使用单位

iflytek_zswang 2011-07-15
  • 打赏
  • 举报
回复
分析函数
老黎 2011-07-07
  • 打赏
  • 举报
回复
打印表格式不清晰
老黎 2011-07-07
  • 打赏
  • 举报
回复

sum(case when ... then 1 else 0 end)
..
..
..
from
where 计划时间 < to_date('2011-08-01','yyyy-mm-dd')
group by 单位名称


sxbug 2011-07-07
  • 打赏
  • 举报
回复
有2个group字段

使用单位 和 集团
sxbug 2011-07-07
  • 打赏
  • 举报
回复
我要统计 计划时间 在2011-8-1以前的数据
该如何用一个sql语句实现呢
老黎 2011-07-07
  • 打赏
  • 举报
回复

A/B/C分组用
sum(case when ... then 1 else 0 end)
..
..
..
group by 单位名称

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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