纵向垒加的SQL应该怎么写?(100分)

  • 主题发起人 主题发起人 一面湖水
  • 开始时间 开始时间

一面湖水

Unregistered / Unconfirmed
GUEST, unregistred user!
我有如下表:
id xm gz
1 li 200
2 zh 300
3 hu 200
我想实现的是:
id xm gz sum
1 li 200 200
2 zh 300 500
3 hu 200 700
我写的SQL是(D6+paradox):
query1.close;
query1.sql.clear;
query1.sql.add('SELECT id,xm,gz,(select sum(gz) FROM qiuhe)FROM qiuhe group by id,xm,gz');
query1.prepare;
query1.open;

但是所得到的结果却是每一个的sum的值都是700,请高手给我详细的指教啊。谢谢了!
 
SELECT id,xm,gz,sum(gz) FROM qiuhe group by id,xm,gz就可以了呀,你那样查,求得
是表中所有gz之和
 
同意楼上的,要分组进行,sql_server有一个例子:交叉数据报表,你可以看一下。
 
SELECT id,xm,gz,(select sum(gz) q FROM qiuhe where q.id <=qiuhe.id) FROM qiuhe
order by id
 
为什么sum之后还要对gz字段group by呢?
'SELECT id,xm,gz,sum(gz) FROM qiuhe group by id'
 
算了还是写个存储过程吧.
 
试试这个,应该可以:
SELECT id,xm,gz,(select sum(gz) FROM qiuhe as q1 where q1.id<=q.id) FROM qiuhe as q;
 
后退
顶部