请教高手sql server2000汇总排序问题(50分)

  • 主题发起人 主题发起人 long102
  • 开始时间 开始时间
L

long102

Unregistered / Unconfirmed
GUEST, unregistred user!
问题: 有一表temp
字段 编号 名称 数量
0001-1001 书1 1
0001-1002 书2 2
0002-1001 书3 1
要求:汇总排序形成:
0001-1001 书1 1
0001-1002 书2 2
0001 小计 3
0002-1001 书3 1
0002 小计 1
合计 4

 
select 编号,名称,数量
from temp
order by substring(编号,1,4)
compute sum(数量) by substring(编号,1,4)
compute sum(数量)

这下可以给分了吧/?
 
SELECT 编号,名称,sum(数量) 数量
FROM temp
GROUP BY 编号,名称 WITH rollup

这样也可以
 
select * from temp
union all
select substring(编号,1,4),‘小计'sum(数量)
from temp
group by substring(编号,1,4)
order by 编号
 
To heyong3:
select 编号,名称,数量
from temp
order by substring(编号,1,4)
compute sum(数量) by substring(编号,1,4)
compute sum(数量)

这个在DELPHI中似乎实现不了题目中的要求,至少在DBExplore中就不对,好象没有求和,
只是增加了一条记录而已。

用union 倒是可以实现的。
 
以上答案只有ugvanxk有所沾边,但还是没有解决排序问题,希望继续给以关注.
heyong3的方法是肯定不行的
 

select xh=编号,* from temp
union
select xh=substring(编号,1,4)+'a',substring(编号,1,4),'小计',sum(数量)
from temp
group by substring(编号,1,4)+'a',substring(编号,1,4)
union
select xh='b','','合计',sum(数量)
from temp
order by xh

序号在这里只是一个排序字段,不需要显示。
在sql server 2000运行成功!!
 
to tanxh:
select 编号,名称,数量
from temp
order by substring(编号,1,4)
compute sum(数量) by substring(编号,1,4)
compute sum(数量)

最后一个compute sum(数量)就实现了求和,为什么说没有求和?
 
后退
顶部