数据库中有相关记录日期   名称    类型     当次量    当月量
08-1-8   中山   8号煤   20    20
08-1-8   中山   8号煤   30    50
08-1-8   中兴   16号煤  30    30
08-1-9   中山   8号煤   30    80最后查询出来的为
日期     名称    类型    当天总量    当月量
08-1-8  中山    8号煤   50       50
08-1-8  中兴    16号煤  30       30
08-1-9  中山    8号煤   30       80我试过用group by 来查询,可是那个当月的量不知如何查出,不知要显示这样的结果语句应如何写?请大家帮帮忙

解决方案 »

  1.   

    select 日期           名称         类型         sum(当天总量)         sum(当月量) 
    from table1
    group by 
      

  2.   

    liugan927 :你那样写肯定不对的,当月量算出来是错的.大家谁知道的可以说一下吗?当月量算不出来
      

  3.   

    当月量的计算..也就是本月第一天到“日期”字段中所在的这个日期的一段时间内记录中当月量最大值...比如到1月8号止,中山的8号煤在数据库流水记录中“当月量” 最大值为 50,亦即为所要的结果...不过SQL处理起来好像有点不那么容易列..
      

  4.   

    create table #
    (日期     varchar(10) , 名称   varchar(10),      类型  varchar(10),          当次量  int,       当月量 int)
    insert into #
    select '08-1-8',       '中山',       '8号煤'    ,   20 ,        20  union all
    select '08-1-8',       '中山',       '8号煤'    ,   30 ,        50  union all
    select '08-1-8',       '中兴',       '16号煤'   ,  30  ,       30   union all
    select '08-1-9',       '中山',       '8号煤'    ,   30 ,        80 
    select 
    日期,名称,类型,[当天总量]=sum(当次量),[当月量]=max(当月量) 
    from 

    group by 
    日期,名称,类型/*
    日期         名称         类型         当天总量        当月量         
    ---------- ---------- ---------- ----------- ----------- 
    08-1-8     中山         8号煤        50          50
    08-1-8     中兴         16号煤       30          30
    08-1-9     中山         8号煤        30          80(所影响的行数为 3 行)
    */
      

  5.   

    select  日期   名称  类型  sum(当天总量)当月量 
    from   table1 where 当月量 =(select max(当月量) from 表)group   by