现有两张表(oracle 9i), hour(小时表)和day(日表)
hour表:
ProvinceID      number(5)      /* 省份 */
LocalArea       number(10)     /* 地区 */
StatDate        varchar2(10)  /* 统计时间(YYYYMMDDHH24) */
BtNum1          number(10) default 0,    /* BT接收包(流量) */
BaiduNum2       number(10) default 0,    /* 百度接收包(流量) */
GnutellaNum3    number(10) default 0,    /* Gnutella接收包(流量)*/
EdonkeyNum4     number(10) default 0,    /* Edonkey接收包(流量)*day表和上面一样,除了StatDate varchar2(10)  /* 统计时间(YYYYMMDD) */页面要实现按照省份、地区、时间这三个查询条件,统计两个表的BtNum1、BaiduNum2、GnutellaNum3、EdonkeyNum4 这四个字段值的大小,并且按照各个字段值的大小在DataGrid里排名显示,
如   小时表 hour                                  日表
省份  地区  统计时间       协议               省份  地区  统计时间   协议
广东  深圳  200506300905   BT                 广东  深圳  20050630    BT
湖北  武汉  200509010130   Baidu              湖北  武汉  20050901    Baidu综上所叙,我想问1.如何统计BtNum1、BaiduNum2、GnutellaNum3、EdonkeyNum4 这个字段值的大小并且排名在DataGrid显示
 2.要统计两个表并排名,只有一个DataGrid,请问如何是好啊?

解决方案 »

  1.   

    昏,我是菜鸟级的,别所的太笼统了,最好测教具体方案,如SOL语句怎么写,感谢了
      

  2.   

    我想问1.如何统计BtNum1、BaiduNum2、GnutellaNum3、EdonkeyNum4 这个字段值的大小并且排名在DataGrid显示
    -----------------
    用sum()函数。
    如:select sum(BtNum1) from hour
      

  3.   

    是不是select sum(BtNum1,BaiduNum2,GnutellaNum3,EdonkeyNum4 )统计大小,但是统计出了大小,如何实现按大小顺序显示在DataGird呢?
      

  4.   

    select btnum from (select sum(BtNum1) btnum from hour) order by btnum
      

  5.   

    select btnum from (select sum(BtNum1) btnum from hour) order by btnum在关键字 'order' 附近有语法错误。
      

  6.   

    昏,偶在sql server2000用,当然报错,偶这没有ORACLE,不知道查出来是什么效果啊
      

  7.   

    呵呵,还有齐天大圣解决不了的问题啊:)
    select btnum from (select sum(BtNum1) btnum from hour) order by btnum;
    select btnum from (select sum(BaiduNum2) btnum from hour) order by btnum;
    select btnum from (select sum(GnutellaNum3) btnum from hour) order by btnum;
    select btnum from (select sum(EdonkeyNum4 ) btnum from hour) order by btnum;
    统计两个表并排名,只有一个DataGrid也可以啊,N个表都可以,DataGrid是数据显示的界面,填充其的数据源只要得到正确的数据就可以了.
      

  8.   

    1.如何统计BtNum1、BaiduNum2、GnutellaNum3、EdonkeyNum4 这个字段值的大小?
     200506300905   意思是2005/6/30 9点05分的流量,而要统计的是一个小时内的流量,对吗?
    select sum(a.btnum1) as h1,sum(a.baiduNum2) as h2,sum(a.Gnutellanum3) as h3,sum(a.edonkeyNum4) as h2..from hour a,day b  group by 省份  地区  统计时间  协议...
    2.要统计两个表并排名,只有一个DataGrid,请问如何是好啊?
    不知道这两个表有没有关联性,如果没有就用(select from time .. )Union (select from Date)
    有关联就在where条件里加上,同时在两个表做select 就可以了...
    以上只是说明个人的思路,具体的语句还要自己调试..
      

  9.   

    我可能表达的不清楚,我不是对表中的某个字段统计并排序,这样用SUM、MAX、ORDER BY就可以实现。
    我需要的是对表的那四个字段比较大小,然后像下面这样显示在DataGrid,不是对一个字段的若干值进行操作。
    例如在day表里,统计出来了各个字段的总和,然后需要对这4个字段之间比大小,比较出大小后,然后像下图显示。省份  地区  协议      流量
    广东  深圳  BT        1000  
    广东  深圳  Baidu     850
    广东  深圳  Edonkey   600
    广东  深圳  Guntella  500