delphi中如何把sql中变量的值赋给全局变量

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:05:35
我在adoquery中写了SELECT *, @a=(case when yaer(a.get_date_tax)>=2007 then 0.6 else 1 end)然后想把@a的值赋给一个全局变量a.....@a是我在adoquery中声明的变量

(我是菜鸟写的有点乱).
我的表a中有id、get_date_tax、jine等字段,id有重复get_date_tax也有重复,但是两个都定下来就没有重复了,现在我想统计每个id下的jine总数zje,当yaer(a.get_date_tax)>=2007 时只加jine的60%,否则全部加上去。不知道这样明白了没?
PS:怎么在自己的问题下跟贴啊?

这段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 < S