sql查询结果行列互转,请各位朋友帮忙看看

cgx117 2010-12-28 03:46:56
SELECT substr(TBD.f_Staticdaytime, 1, 4) || '年' ||
TO_CHAR(TO_DATE(TBD.f_staticdaytime, 'yyyy-MM-dd'), 'mon') dates,
nvl(sum(decode(substr(TBD.f_regioncode, 1, 4),
'4201',
TBD.F_DEADPOPNUM,
0)) - lag(sum(decode(substr(TBD.f_regioncode, 1, 4),
'4201',
TBD.F_DEADPOPNUM,
0)),
1,
0)
over(partition by
to_char(to_date(TBD.f_Staticdaytime, 'yyyy-MM-dd'), 'yyyy')
order by TBD.f_Staticdaytime),
0) data0,
nvl(sum(decode(substr(TBD.f_regioncode, 1, 4),
'4202',
TBD.F_DEADPOPNUM,
0)) - lag(sum(decode(substr(TBD.f_regioncode, 1, 4),
'4202',
TBD.F_DEADPOPNUM,
0)),
1,
0)
over(partition by
to_char(to_date(TBD.f_Staticdaytime, 'yyyy-MM-dd'), 'yyyy')
order by TBD.f_Staticdaytime),
0) data1
FROM TB_BAS_COUDAYHAZARDDATA TBD
WHERE substr(TBD.f_staticdaytime, 6) IN
('04-30', '05-31', '01-31', '02-28', '02-29', '03-31')
AND substr(TBD.f_Staticdaytime, 1, 4) IN ('2010')
AND TBD.f_hazardtype = '1'
AND substr(TBD.f_regioncode, 1, 4) IN ('4201', '4202')
GROUP BY TO_CHAR(TO_DATE(TBD.f_Staticdaytime, 'yyyy-MM-dd'), 'mon'),
TBD.f_Staticdaytime

以上是我的sql文,查询结果如下:
时间 武汉市 黄石市
1 2010年1月 3 31
2 2010年2月 9 -31
3 2010年3月 9 27
4 2010年4月 -21 2
5 2010年5月 39 31

我现在想对结果进行行列互换,查询武汉市和黄石市这几个月的合计,预想结果如下

武汉市 60(负数相加时按0算)
黄石市 91
各位大虾来帮我看看好吧,谢谢了
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cgx117 2011-01-20
  • 打赏
  • 举报
回复
不好意思,各位朋友,呵呵,结贴晚了啊,实在抱歉啊
心中的彩虹 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 cgx117 的回复:]
SQL code
SELECT substr(TBD.f_Staticdaytime, 1, 4) || '年' ||
TO_CHAR(TO_DATE(TBD.f_staticdaytime, 'yyyy-MM-dd'), 'mon') dates,
nvl(sum(decode(substr(TBD.f_regioncode, 1, 4),
……
[/Quote]

select '武汉市' name,sum(武汉市) from tb
union all
select '黄石市' name,sum(黄石市) from tb
gelyon 2010-12-28
  • 打赏
  • 举报
回复


WITH tab AS(
SELECT '2010年1月' dates, 3 data0,31 data1 FROM dual UNION ALL
SELECT '2010年2月', 9, -31 FROM dual UNION ALL
SELECT '2010年3月', 9, 27 FROM dual UNION ALL
SELECT '2010年4月', -21, 2 FROM dual UNION ALL
SELECT '2010年5月', 39, 31 FROM dual
)
SELECT '武汉市' city, Sum(Decode(Sign(data0),-1,0,data0)) data FROM tab
UNION ALL
SELECT '黄石市',Sum(Decode(Sign(data1),-1,0,data1)) FROM tab

CITY DATA
--------------
武汉市 60
黄石市 91
cgx117 2010-12-28
  • 打赏
  • 举报
回复
有没有哪位大虾帮帮忙呢,谢谢了

17,086

社区成员

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

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