按某一字段统计另一字段的值如何实现?? 请教高手!!下面的如何实现?表为TestAmount Unit1 A2 B5 A3 C7 D想要的结果为:A B C D ......6 2 3 7说明:Unit字段的值不确定,可能有很多 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT sum(decode(unit,'A',amount,0)) A, sum(decode(unit,'B',amount,0)) B, sum(decode(unit,'C',amount,0)) C, sum(decode(unit,'D',amount,0)) D, sum(decode(unit,'E',amount,0)) E, sum(decode(unit,'F',amount,0)) F, .... FROM TEST; Unit字段的值不确定,楼上的这样写应该不能实现吧! 你的结果跟你的测试数据很难有什么明显的规则,反正我只看出了行列转换,但是又不太像啊。Unit字段是列变成行,但是Amount字段呢,不知道怎么变了,楼主你要给个提示吧! Unit为A的,统计Amount字段的sum和 为B的统计Amount字段的和 . . . . SELECT unit,sum(Amount) FROM TEST group by unit; 其实就是统计结果纵表转横表select wm_concat(aaa.val) as resutls from (select unit,sum(amount) as val from test group by unit order by unit) aaa;results会按A,B,C,D...的顺序列出6,2,3,7...中间用逗号分隔拿到数据自己再处理下但觉得真的没必要,你已经可以拿到纵表了,稍微处理下就行了。你如果想拿到和你要求一样的结果,可以用动态sql但感觉没必要。 不确定的话,就用动态的SQL来实现!网上行转列的例子太多了 首先这应该不是行转列。按照你的意思,如果按照Unit分组(group by)的话,查询结果的行数会与你字母的种类数一样,应该是不能只返回一行"总数"的,另外你的Unit还不确定,这也没办法用case语句或者是自己重建一张临时表插入数据,感觉这样要求好像做不出来.等待高手解答..... 什么是枚举表 not exists 存储过程 备份数据库 数据库恢复问题 今天考试几个不知道的问题! 在delphi中查询字段类型没有返回值?(加急件!鸡毛贴!!!) 关于现在大型网络数据库的一个调查?100分来着皆有 在ORACLE中,表被锁死(表处于挂起状态,不能再删除,添加数据)怎么办 怎样获得oracle中的进程信息? 求教,可以在c#或java中使用call调用oracle存储过程并获取返回的结果集吗? 数据库开发把关 关键技术咨询 [求助]排除表中的重复数据
sum(decode(unit,'B',amount,0)) B,
sum(decode(unit,'C',amount,0)) C,
sum(decode(unit,'D',amount,0)) D,
sum(decode(unit,'E',amount,0)) E,
sum(decode(unit,'F',amount,0)) F,
....
FROM TEST;
你的结果跟你的测试数据很难有什么明显的规则,反正我只看出了行列转换,但是又不太像啊。Unit字段是列变成行,但是Amount字段呢,不知道怎么变了,楼主你要给个提示吧!
为B的统计Amount字段的和
.
.
.
.
FROM TEST group by unit;
select wm_concat(aaa.val) as resutls from (select unit,sum(amount) as val from test group by unit order by unit) aaa;
results会按A,B,C,D...的顺序列出6,2,3,7...中间用逗号分隔拿到数据自己再处理下
但觉得真的没必要,你已经可以拿到纵表了,稍微处理下就行了。
你如果想拿到和你要求一样的结果,可以用动态sql但感觉没必要。
按照你的意思,如果按照Unit分组(group by)的话,查询结果的行数会与你字母的种类数一样,应该是不能只返回一行"总数"的,另外你的Unit还不确定,这也没办法用case语句或者是
自己重建一张临时表插入数据,感觉这样要求好像做不出来.
等待高手解答.....