免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2177 | 回复: 4
打印 上一主题 下一主题

ORACLE 能实现这样的QUERY 么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-15 05:43 |只看该作者 |倒序浏览
我有这样的一个table:

Activity   Student_ID
A          101
A          101
A          101
A          103
A          103
B          99
B          99
B          99
B          990
B          55
C          66
C          120
C      120
C          125
D          15
E          15     
。。。

现在我想用一个Query来显示出这样的数据

Activity    15  55  66  99  101 103 120 125 990
A           0   0   0   0   3   2   0   0   0
B           0   1   0   0   3   0   0   0   1
C           0   0   1   0   0   0   2   1   0
D           1   0   0   0   0   0   0   0   0
E           1   0   0   0   0   0   0   0   0
--------

原来的所有的STUDENT_ID现在都变成了新的列的名字, 算出每个STUDENT对每个ACTIVITY的总数。

因为时间段可以不同,所有有多少STUDENT_ID不能先定下来,全是动态的。

这种QUERY 可能么?

论坛徽章:
0
2 [报告]
发表于 2009-02-15 10:24 |只看该作者
不可能直接完成,要通过一定的编程手段

论坛徽章:
0
3 [报告]
发表于 2009-02-15 10:27 |只看该作者
原帖由 doni 于 2009-2-15 10:24 发表
不可能直接完成,要通过一定的编程手段


你的意思是不可能通过写数据库的function等等手段来解决,只能是简单的QUERY之后然后写程序去处理数据? 谢谢回复!

论坛徽章:
0
4 [报告]
发表于 2009-02-15 13:08 |只看该作者
function也算是一种编程手段

论坛徽章:
0
5 [报告]
发表于 2009-02-15 18:53 |只看该作者
Oracle has the PIVOT function in ORACLE 11G

if your oracle version is Oracle 10g or older,

you can get some information from the URL http://www.itpub.net/thread-593774-1-1.html

i hope it will help you

[ 本帖最后由 gkl0818 于 2009-2-15 18:55 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP