躺在沙灘上的小豬

          快樂的每一天

          統(tǒng)計(jì)合計(jì)和明細(xì)。

          今天遇到一個(gè)需求:

          假如我有這幾個(gè)數(shù)字:
          用戶:       user
          消費(fèi):       fee

          現(xiàn)在數(shù)據(jù)庫里面可能一個(gè)用戶有多條數(shù)據(jù)。
          例如:

          id  user     fee
          1  張三    100
          1  張三    50
          1  張三    20

          2  李四    30
          2  李四    20

          3  小王    1000

          現(xiàn)在我需要這樣的結(jié)果:

          不僅要統(tǒng)計(jì)出明細(xì)而且要總和,并且按 fee,id排序

          小王    1000

          張三  170
          張三    100
          張三    50
          張三    20

          李四    50
          李四    30
          李四    20


          用union all,在計(jì)算出來的結(jié)果上再order by就達(dá)到了最初的效果了。

          select *
            
          from (select t.id, '' name, sum(t.fee) fee, '' fff, '' ff, sum(t.fee) fee2
                    
          from
           tt_test t
                   
          group by
           t.id
                  
          union all

                  
                   (
          select a.*, b.fee2
                     
          from
           tt_test a,
                          (
          select sum(t.fee) fee2, t.id from tt_test t group by
           t.id) b
                    
          where a.id =
           b.id)) s

           
          order by s.fee2 desc, s.id

          感覺有點(diǎn)麻煩,不知道有好的方法沒

          posted on 2005-10-20 16:40 martin xus 閱讀(205) 評論(0)  編輯  收藏 所屬分類: oracle

          主站蜘蛛池模板: 临澧县| 陈巴尔虎旗| 桃园市| 乌拉特后旗| 镇平县| 伊通| 苏尼特左旗| 民勤县| 彩票| 定襄县| 陆良县| 库车县| 大荔县| 龙里县| 巫溪县| 蒙阴县| 中方县| 黄浦区| 北辰区| 墨脱县| 江达县| 昭平县| 阿拉善盟| 新河县| 新邵县| 河间市| 荣昌县| 定州市| 韶关市| 柯坪县| 阳西县| 石河子市| 临武县| 巴楚县| 榆社县| 德安县| 六盘水市| 康保县| 和龙市| 壤塘县| 平昌县|