关于批量修改数据的sql语句

flyingsnowfox 2003-03-10 04:58:52
我用的是paradox数据库,做一个工资系统,所有记录放在一个表里
我想筛选出上月的各工资项,放到本月工资记录中,语句如下:
query1.SQL.Add('update lz_gzjj set a.gz=b.gz,a.jj=b.jj,a.jbf=b.jbf,a.kk=b.kk,a.slgz=b.slgz from lz_gzjj a,lz_gzjj b where a.ygbh=b.ygbh and b.rq="'+edtYear.text+edtMonth.text+'"');
调试时总说“invalid of keyword,taken:from"
请问这是什么错误,该怎么解决,
...全文
231 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingsnowfox 2003-03-10
  • 打赏
  • 举报
回复
我把它改成这样后不报错了,可没有结果,记录值未改变
where后的语句是员工编号,会不会是没有符合条件的记录呢?
可员工编号一定是相等的呀?
query1.SQL.Add('update lz_gzjj b set gz=b.gz,jj=b.jj,jbf=b.jbf,'+
'kk=b.kk,slgz=b.slgz where '+
'ygbh=b.ygbh');
flyingsnowfox 2003-03-10
  • 打赏
  • 举报
回复
to ESU
不用别名就会提示无效的字段
flyingsnowfox 2003-03-10
  • 打赏
  • 举报
回复
to密码错误
我是在一个表中导数据,去掉from lz_gzjj a,lz_gzjj b 就无法标记数据库了
esu 2003-03-10
  • 打赏
  • 举报
回复
FROM 子句中指定的表的别名不能作为 SET column_name 子句中的限定符使用。例如,下面的内容无效:

UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,请从列名中删除别名 t。

UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
wjlsmail 2003-03-10
  • 打赏
  • 举报
回复
update ... set ... from ... 可以的
wjlsmail 2003-03-10
  • 打赏
  • 举报
回复
不是这儿的错吧
lincanwen 2003-03-10
  • 打赏
  • 举报
回复
"from lz_gzjj a,lz_gzjj b " 去掉

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧