var
editamount:double;
beginstr1:='update GoodsDetail set G_Amount=isnull(GoodsDetail.G_Amount,0)+isnull(TempTable1.T_Amount,0)+(-editamount)from GoodsDetail,Temptable1 ';
with adoquery1
begin
try
close;
sql.Clear;
sql.Add(str1);
ExecSQL;
except
showmessage('未知错误,保存失败!');
end;
end;
end;报错为editamount为错误的Column名,请问如何写这条SQL语句!
editamount:double;
beginstr1:='update GoodsDetail set G_Amount=isnull(GoodsDetail.G_Amount,0)+isnull(TempTable1.T_Amount,0)+(-editamount)from GoodsDetail,Temptable1 ';
with adoquery1
begin
try
close;
sql.Clear;
sql.Add(str1);
ExecSQL;
except
showmessage('未知错误,保存失败!');
end;
end;
end;报错为editamount为错误的Column名,请问如何写这条SQL语句!
同时我觉得你的GoodsDetail和Temptable1之间要有连接条件where,否则会造成笛卡儿集
没有-号吧
var
editamount:double;
beginstr1:='update GoodsDetail set G_Amount=isnull(GoodsDetail.G_Amount,0)+isnull(TempTable1.T_Amount,0)+editamount from GoodsDetail,Temptable1 where Temptable1.T_Code=GoodsDetail.G_Code';
with adoquery1
begin
try
close;
sql.Clear;
sql.Add(str1);
ExecSQL;
except
showmessage('未知错误,保存失败!');
end;
end;
end;
其中editamount是我定的的一个Double类型的变量。报错为editamount为错误的Column名,请问如何写这条SQL语句!
Format('update GoodsDetail set G_Amount=isnull(GoodsDetail.G_Amount,0)+isnull(TempTable1.T_Amount,0)+%f.2 from GoodsDetail,Temptable1 where Temptable1.T_Code=GoodsDetail.G_Code',[editamount])
str1:='update GoodsDetail set G_Amount=isnull(GoodsDetail.G_Amount,0)+isnull(TempTable1.T_Amount,0)'+editamount +'from GoodsDetail,Temptable1 where Temptable1.T_Code=GoodsDetail.G_Code';
不然的话计算机误认为editamount是一个字段的名称。
----------------------------
个人意见仅供参考。
可以象楼上说的那样,有加号分开。