SELECT 名称,'一月' as 月份,一月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'二月' as 月份,二月 as 金额 from tablename group by 名称
UNION
.
.
.
SELECT 名称,'十一月' as 月份,十一月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'十二月' as 月份,十二月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'二月' as 月份,二月 as 金额 from tablename group by 名称
UNION
.
.
.
SELECT 名称,'十一月' as 月份,十一月 as 金额 from tablename group by 名称
UNION
SELECT 名称,'十二月' as 月份,十二月 as 金额 from tablename group by 名称
解决方案 »
- 該如何顯示A資料表與B資料表相同的資料
- 小菜请教大侠一个ebs forms的问题
- 删除报错的问题!
- 排序:将一列1-10正序,11-20倒序,20-?正序,前两步已经解决,请高人指点。
- 一个非常难优化的sql,,,向高手们求解!!!!!!!!!!!!!!!!!
- 用dba登录可以访问表,用normal登录访问不了,怎么修改权限?
- 用动态SQL执行删除表的过程的问题?
- 求救:ORACLE中sequence置空的问题
- 数据库缓存服务请教?标题要长.............................
- 给ASM加数据文件时问题
- 如何取得包体中对象名称的清单?
- 求触发器before,after的用法
select name,' 一月',m1 mon from m group by name,m1
union
select name,' 二月',m2 mon from m group by name,m2
...union
select name,' 十二月',m12 mon from m group by name,m12order by name desc ,mon参考一下喽
declare @ varchar(8000)
set @=''
select @=@+rtrim(name)+' from t1 union all select ' from syscolumns where id=object_id('t1')
set @=left(@,len(@)-len(' from t1 union all select '))
--print @
exec('select '+@+' from t1')
--------------------------------
一月一月写很麻烦的,这个是sql下的例子,你把它改成oracle就是了
-------- ---------- ---------- ---------- ----------
张三 100 200 300 400
李四 300 300 500 800SQL> select name,'一月' 月份,一月 金额 from geshi group by name,一月
2 union
3 select name,'二月' 月份,二月 金额 from geshi group by name,二月
4 union
5 select name,'三月' 月份,三月 金额 from geshi group by name,三月
6 union
7 select name,'四月' 月份,四月 金额 from geshi group by name,四月;NAME 月份 金额
-------- ---- ----------
李四 二月 300
李四 三月 500
李四 四月 800
李四 一月 300
张三 二月 200
张三 三月 300
张三 四月 400
张三 一月 100已选择8行。