如何将纵向数据横向显示

dxb_828 2010-04-15 04:36:03
有如下数据
orgid orgname dj djmc count
1 财务部 01 非常满意 2
1 财务部 02 满意 1
2 综合部 01 满意 2

希望显示的数据
orgname dj1 count dj2 count
财务部 非常满意 2 满意 1
综合部 非常满意 0 满意 1
...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
iqlife 2010-04-15
  • 打赏
  • 举报
回复
WITH TAB AS 
(
SELECT 1 orgid ,'财务部' orgname ,'01' dj ,'非常满意' djmc, 2 count FROM DUAL
UNION ALL
SELECT 1 orgid ,'财务部' orgname ,'02' dj ,'满意' djmc, 1 count FROM DUAL
UNION ALL
SELECT 1 orgid ,'管理部' orgname ,'02' dj ,'满意' djmc, 2 count FROM DUAL
)
SELECT orgname ,
max(DECODE(djmc,'非常满意',djmc,0)) AS DJ1 ,
max(DECODE(djmc,'非常满意',COUNT,0 )) AS COUNT1 ,
max(DECODE(djmc,'满意',djmc,0 )) AS DJ2 ,
max(DECODE(djmc,'满意',COUNT,0 )) AS COUNT2
FROM TAB
group by orgname


ORGNAME DJ1 COUNT1 DJ2 COUNT2
财务部 非常满意 2 满意 1
管理部 0 0 满意 2
tangren 2010-04-15
  • 打赏
  • 举报
回复
with tt as(
select 1 orgid, '财务部' organame, '01' dj,'非常满意' djmc, 2 cnt from dual union all
select 1 orgid, '财务部' organame, '02' dj,'满意' djmc, 1 cnt from dual union all
select 2 orgid, '综合部' organame, '01' dj,'满意' djmc, 2 cnt from dual)
SELECT tt.organame,
'非常满意' djmc1,
SUM(decode(djmc, '非常满意', cnt, 0)) dj1,
'满意' djmc1,
SUM(decode(djmc, '满意', cnt, 0)) dj2
FROM tt
GROUP BY organame

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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