表名: posd字段: 编号   数量   单价   小计要求: 按小计的结果在指定的范围内分组显示,例如 0-100 元,100-1000元
显示:范围         数量
-----------------------
0-100      合计值
100-1000   合计值
由于这个范围是动态的, 有可能是 10-50 这样,而且是多个的, 所以我想用 sql 语句来做到, 能不能不用函数或过程呢 ? 现在写到 Group by 不会写了,好象不允许 小计>0 and 小计<100 这样的写法,唯有求助了,谢谢!
 

解决方案 »

  1.   

    select 范围 = '0-100' , sum(数量) 范围 from posd where 小计>=0 and 小计<100
    union all
    select 范围 = '100-1000' , sum(数量) 范围 from posd where 小计>=100 and 小计<1000
      

  2.   

    如果是动态的的,使用动态SQL.
    declare @sql as varchar(1000)
    set @sql = 'select 范围 = '''0-100''' , sum(数量) 范围 from posd where 小计>=0 and 小计<100
    union all
    select 范围 = '''100-1000''' , sum(数量) 范围 from posd where 小计>=100 and 小计<1000'
    --如果有更多的,使用循环把@sql写完.
      

  3.   

    tks. dawugui 的写法太好了