有关sql的问题(paradox)(50分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
假如用paradox7建一表table1.db
其数据和字段如下:
name price
a 10
b 20
c 40
d 20
e 30
f 10
g 20

我想实现每两条记录的“price”的和最后的总记录“price”的和。例如,table1.db变为:
name price
a 10
b 20
页合计 30
c 40
d 20
页合计 60
e 30
f 10
页合计 40
g 20
页合计 20
总合计 150

如何用SQL实现?
 
建议读取paradox表的物理序号,每两条记录计算一次.
用Sql语句?
 
加个字段 Group_ID,对每个名字分组
select sum(price) from table group by group_id;
 
agree gxg8816,每两个Group_ID值相同即可用group
 
其实这个问题是这样的:
其实这是一个报表来的,用户要求是第一页纸只打印两条记录,每一页都要统计一页
的合计,当在最后一页时有一个统计总合计。我的方法只是这样,只能在一个表
table1.db里每两条记录插入一个“页合计”,到最后有一个“总合计”,如何实现
呢?我用中国式报表不能实现这个功能,用sceenreport能实现,但是太麻烦了,不知有没有其它的报表软件?
 
Hello,fasto!
你是不是bbs.nease.net中得fasto? {B-)
bcb
 
fstao:
如果你只要做你所讲的报表,用QR即可,在DetailBand中用如下6个QRLabel:
[name1 ] [price1 ]
[name2 ] [price2 ]
[name3 ] [totalprice]
name3.caption设为'页合计:'

procedure TForm2.QRDetailBandBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var p1,p2:real;
begin
name1.Caption:=Table1.FieldByName('name').asstring;
p1:=Table1.FieldByName('price').asfloat;
price1.Caption:=FloatToStr(Table1.FieldByName('price').asfloat);
Table1.Next;
if not Table1.Eof then
begin
name2.Caption:=Table1.FieldByName('name').asstring;
price2.Caption:=FloatToStr(Table1.FieldByName('price').asfloat);
p2:=Table1.FieldByName('price').asfloat;
end else p2:=0;
totalprice.Caption:=FloatToStr(p1+p2);
QuickRep1.EndPage;
end;

总合计用SummaryBand,QRExpr即可得到.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部