这段SQL是什么?触发器吗?结构看上去好诡异啊
虽然通过你的解释我大概明白是怎么回事了 ,但是这段SQL。。。说实在话 我真不懂,可以麻烦你把部分代码放上来不?
用两个DBGRID简单的实现了你的要求
procedure TForm1.Button1Click(Sender: TObject);
Var SumResult:double;//计算总的金额
Temp:double;//获取当前记录的金额
TempID:Integer;//获取当前记录ID
TempDate:TDate;//获取当前记录日期
i:Integer;
begin
AdoQuery1.Open;
AdoQuery1.First;
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('Delete * from collectResult');
AdoQuery2.ExecSQL;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('Select * from collectResult');
AdoQuery2.Open;
AdoQuery2.First;
with AdoQuery2 do
begin
SumResult:=0;
DbGrid1.DataSource.DataSet.First;
TempID:= DbGrid1.Fields[0].Value;
for i:= 0 to AdoQuery1.RecordCount -1 do
begin
TempDate:=DbGrid1.Fields[2].AsDateTime;
Temp:=DbGrid1.Fields[1].AsFloat;
if TempDate < StrToDate('2007-1-1') then
begin
SumResult:=Temp+SumResult;
end
else
begin
SumResult:=Temp*0.6+SumResult;
end;
if TempID = DbGrid1.Fields[0].Value then
begin
Edit;
FieldByName('SumResult').Value := SumResult;
FieldByName('Id').Value:= TempID;
end
else
begin
SumResult:= Temp;
TempID:=DbGrid1.Fields[0].Value;
Insert;
FieldByName('SumResult').Value := SumResult;
FieldByName('Id').Value:= TempID;
end;
Post;
DbGrid1.DataSource.DataSet.Next;
end;
end;
end;
呵呵 才学 程序写的很难看 而且也不知道你要做的是什么 只是做了个你要的操作