论坛首页 综合技术论坛

oracle9i单表分组问题,有点搞人!

浏览 15192 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-05  
有个查询结果,但是希望能把age1,age2,age3,age4合并为一个column,该如何做呢?
查询结果如图
  • 大小: 22.4 KB
0 请登录后投票
   发表时间:2008-03-05  
把它拆成N个简单的sql,问题基本上解决了-_-!
0 请登录后投票
   发表时间:2008-03-08  
多累啊, 存储过程+临时表写下不就好了,非要搞这么负责的强劲SQL
0 请登录后投票
   发表时间:2008-03-10  
为什么非要在查询语句中费那么大劲呢!你这种sql,如果并发量稍大一点,造成死锁的几率就会很高。
给你说说我们的方案,一句简单的sql把需要的数据查出来,在程序中予以分类或计算,然后写入报表,如果对并发有要求,那么就来他几个线程
0 请登录后投票
   发表时间:2008-03-10  
感觉没什么难的,我做的报表比你的复杂多了!

用4次行转列,然后再进行连接操作,一个sql搞定!
0 请登录后投票
   发表时间:2008-03-10  
楼主的方案太复杂了!

19个表连接,数据库会崩溃的!

用行转列,应该只要4个表的连接!
0 请登录后投票
   发表时间:2008-03-13  
窗口函数,似乎是解决此类问题的东西。(听说而已,给您提个醒)
0 请登录后投票
   发表时间:2008-03-14  
首先,谢谢大家的关注。
这里我大概的说下我遇到的问题:在一家企业内,我们对人力资源进行分类(管理人员,专业技术人员,生产技能人员,其他人员),这个分类被存放在一个基础数据表中(命名为BasicDataMaster=存放该分类的代码,BasicDataDetail=存放该代码对应的明细,如上述中的人员类别),在职员表中有个Field与之对应(并非关联,而是在做insert employee的时候把相应的类型存放在该字段中,只是个value)。与此同时,还有其他的企业内基础数据对employee进行描述,比如职称,学历,年龄(birthday),技术等级等等。报表要求如图所示。
  • 大小: 78.2 KB
0 请登录后投票
   发表时间:2008-03-14  
javaTo 写道
为什么非要在查询语句中费那么大劲呢!你这种sql,如果并发量稍大一点,造成死锁的几率就会很高。
给你说说我们的方案,一句简单的sql把需要的数据查出来,在程序中予以分类或计算,然后写入报表,如果对并发有要求,那么就来他几个线程

现在我采用的是这个方法,目前暂时没有考虑线程问题。
0 请登录后投票
   发表时间:2008-03-14  
这是典型的中国式报表(复杂表头,不定列,数据跨行等)

个人认为sql语言的窗口函数+行列转换是个比较好的方案,不过写的sql比较多,但是效率绝对不差!

我不建议把sql写到程序里,整个存储过程吧,嘿嘿!

楼主如果乐意讨论,把表结构和数据贴出来大家讨论!
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics