With fuzhu_ado do
Begin
close;
sql.clear;
sql.Add('update jhmxkc set shuliang=a.shuliang+b.shuliang from thmx b ,jhmxkc a where b.thmc=a.yjmc');
execsql;
为什么这样写老是提示:‘语法错误(操作符丢失)在查询表达式a.shuliang+b.shuliang from thmx b ’
Begin
close;
sql.clear;
sql.Add('update jhmxkc set shuliang=a.shuliang+b.shuliang from thmx b ,jhmxkc a where b.thmc=a.yjmc');
execsql;
为什么这样写老是提示:‘语法错误(操作符丢失)在查询表达式a.shuliang+b.shuliang from thmx b ’
Begin
close;
sql.clear;
ql.Add('update jhmxkc set shuliang=(Select(a.shuliang+b.shuliang) from thmx As b ,jhmxkc As
a where b.thmc=a.yjmc');
execsql;
end;
Begin
close;
sql.clear;
ql.Add('update jhmxkc set shuliang=(Select(a.shuliang+b.shuliang) from thmx As b ,jhmxkc As
a where b.thmc=a.yjmc)');
execsql;
end;
With fuzhu_ado do
Begin
ACTIVE=FALSE;
sql.clear;
Sql.TEXT:='update jhmxkc AS A LEFT JOIN thmx AS B ON(b.thmc=a.yjmc) set A.shuliang=A.shuliang+B.shuliang ';
execsql;
end;
注意大寫部分的不同,尤其是LEFT JOIN 而不是INNER JOIN.
不行配你錢.
left join吗?
我从来没有看过这样的写法!
Table1 Table2
aaa <---> aaa
bbb <---> bbb
ccc
ddd
eee <---> eee
results:
aaa+aaa
bbb+bbb
eee+eee
少了ddd.
LEFT JOINN:
Table1 Table2
aaa <--- aaa
bbb <--- bbb
ccc
ddd <--- NULL
eee <--- eee
results:
aaa +aaa 计算
bbb +bbb 计算
ddd 计算:ddd+NULL不影响结果。
eee +eee 计算understand?