如果有一个 表 R  字段如下 
stat_time   province_id province_name city_id city_name  user_num 表 D  city_id,city_orderid  我要在 R 表中查询  stat_time,city_name  关联 D表 按照 stat_time asc,city_orderid asc, city_name asc 排序 显示的结果如下  2008-10-10 沈阳  10
2008-10-10 大连  11
2008-10-10 全省小计 21 显示这种样式,如何实现 ?  
我写的 sql 是 
select stat_time, case when grouping(city_name) = 1 
                       then '全省小计'
                   else  city_name,
       sum(user_num)
from R   这样可以出来上面的结果 ,但如果按照 D 表的 city_id 进行关联,city_orderid 先升序,我就迷糊了,不知道怎么写了,哪个高手赐教下? 谢谢

解决方案 »

  1.   

    上面的 sql 写错 ,原需求字段较多,我随便举的例子 sql : select stat_time, case when grouping(city_name) = 1 
                          then '全省小计' 
                      else  city_name
                      end city_name, 
          sum(user_num) 
    from R 
    group by stat_time,rollup(city_name)
      

  2.   

    因为用户需求比较变态,比如说 ,是江苏省,就必须要按照 人家想的 进行显示,不能直接 按照 city_name进行asc ,必须先 按照我们先自己定的 city_orderid  升序在排 city_name  ,但一把city_orderid   加进来 在group by 数据就全乱了,无语撒
      

  3.   

    select a.stat_time,a.city_name,a.user_num from (
      select stat_time, case when grouping(city_name) = 1 
                          then '全省小计' 
                      else  city_name 
                      end city_name, 
          sum(user_num) user_num
      from R 
      group by stat_time,rollup(city_name)
    ) a,city b
    where a.city_name=b.city_name
    group by b.city_orderid