1、我做了一个查询,数据来源于SQL里的一个视图,但是查询结果是汇总的数量、金额,现在想要根据查询结果自动计算单价
——但要考虑当汇总的记录数量为0时,单价则也为0;反之单价=金额/数量
2、查询的结果想在第一列根据查询的记录自动增加序号
序号规则为:0001,0002,0003……,根据查询的记录数自动增加
——但要考虑当汇总的记录数量为0时,单价则也为0;反之单价=金额/数量
2、查询的结果想在第一列根据查询的记录自动增加序号
序号规则为:0001,0002,0003……,根据查询的记录数自动增加
if 数量=0 then sprice=0
else sprice=金额/数量
2.可以试着用临时表
数量,金额,(case when 数量 = 0 then 0 else 金额/数量 end) as 单价
FROM 表名
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select top 1 ID from table ORDER BY ID DESC');
ADOQuery1.Open;
kvalue:=ADOQuery1.fieldbyname('ID').AsString;
kvalue:=floattostr(strtofloat(kvalue)+1);
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
s:string;
begin
if Column.Index = 0 then
with DBGrid1.Canvas do
begin
FillRect(Rect);
s:='000'+IntToStr(DBGrid1.DataSource.DataSet.RecNo);
TextOut(Rect.Left+2, Rect.Top+2, copy(s,Length(s)-3,4));
end;
end;