一条Update 能同时修改两个字段的值吗?

lqf802 2004-03-30 07:44:42
我用 Update Tb_A set Fa,Fb select.......
SQ查询分析器报错,但我想用一条Update同时修改两个字段的值,
不知能不能做到,如能请提示,谢谢!
...全文
55583 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
welllove88 2004-03-31
  • 打赏
  • 举报
回复
当然能了
dkfan 2004-03-31
  • 打赏
  • 举报
回复
Update 绝对没有问题!
Update A
set A.Col1= B.Col1,
A.Col2= B.Col2
from AAA A
join (select Sum(sls) Col1, Sum(ada)Col2 from SSS ) B on (????)
lqf802 2004-03-31
  • 打赏
  • 举报
回复
其实两个sum值是在一个表中取得的,我只想统计一次就搞定,但这的话还是要分两次,不是太没效力,有没有类似insert into的语句一次搞定多个字段...........
yu505 2004-03-31
  • 打赏
  • 举报
回复
我也没有做过这么长的结果值,真的太长了!其实你可以把这个语句写得更加简单
点的,
nnfish 2004-03-31
  • 打赏
  • 举报
回复
可以
andlew 2004-03-31
  • 打赏
  • 举报
回复
补充一下,我没有做过这么长的结果值,真的太长了,呵呵~
合在一起做,问题不大,应该是可以的!
andlew 2004-03-31
  • 打赏
  • 举报
回复
合在一起不就行了嘛~!
就想这样:
Update tb_xz_salary set NoworkHours=(select isnull(sum(tb_kq_nowork.NoWorkHours),0) from tb_kq_nowork where isnull(tb_kq_nowork.checker,'')<>'' and tb_kq_nowork.Emp_id=tb_xz_salary.Emp_id and tb_kq_nowork.Noworkdate>='2004-02-01' and tb_kq_nowork.Noworkdate<'2004-03-01' group by tb_kq_nowork.Emp_id) ,
NoworkPay=(select isnull(sum(tb_kq_nowork.Pay),0) from tb_kq_nowork where isnull(tb_kq_nowork.checker,'')<>'' and tb_kq_nowork.Emp_id=tb_xz_salary.Emp_id and tb_kq_nowork.Noworkdate>='2004-02-01' and tb_kq_nowork.Noworkdate<'2004-03-01' group by tb_kq_nowork.Emp_id)
where tb_xz_salary._year=2004 and tb_xz_salary._month=2

更新成像你这样的结果值我没有做过,但是我类似的update句子~!
guxizhw 2004-03-31
  • 打赏
  • 举报
回复
应该是可以的吧,我手头没有access
strSQLSUB1:='你的子查询1',strSQLSUB2:='你的子查询2'

strSQL:='update tb_xz_salary set NoworkHours='+strsqlsub1+' ,NoworkPay='+strsubsql2

然后提交这条sql试试
lqf802 2004-03-31
  • 打赏
  • 举报
回复
但是我要更新的查询后面很长是从另一表中统计出来的(如下面)
Update tb_xz_salary set NoworkHours=(select isnull(sum(tb_kq_nowork.NoWorkHours),0) from tb_kq_nowork where isnull(tb_kq_nowork.checker,'')<>'' and tb_kq_nowork.Emp_id=tb_xz_salary.Emp_id and tb_kq_nowork.Noworkdate>='2004-02-01' and tb_kq_nowork.Noworkdate<'2004-03-01' group by tb_kq_nowork.Emp_id) where tb_xz_salary._year=2004 and tb_xz_salary._month=2
而第二条也是从刚才的表中统计出来的而且条件也一样,我不想统计,更新两次
Update tb_xz_salary set NoworkPay=(select isnull(sum(tb_kq_nowork.Pay),0) from tb_kq_nowork where isnull(tb_kq_nowork.checker,'')<>'' and tb_kq_nowork.Emp_id=tb_xz_salary.Emp_id and tb_kq_nowork.Noworkdate>='2004-02-01' and tb_kq_nowork.Noworkdate<'2004-03-01' group by tb_kq_nowork.Emp_id) where tb_xz_salary._year=2004 and tb_xz_salary._month=2

将两个字段分别对应两个(统计)查询语句就可以通过,如果我想两个字段对应一条(统计)查询的语句行不行?如果行请示例。
gaoxiulan 2004-03-31
  • 打赏
  • 举报
回复
maimaizhi 2004-03-31
  • 打赏
  • 举报
回复
Update tb1 set a.Col1= b.Col1,a.Col2= b.Col2
from tb1 as a ,(select id,Col1,Col2 from tb2 ) as b
where a.id=b.id
谭建新 2004-03-31
  • 打赏
  • 举报
回复
可以得
ailibuli 2004-03-30
  • 打赏
  • 举报
回复
Update Tb
Set fa=値1,fb=値2
Where 条件
postren 2004-03-30
  • 打赏
  • 举报
回复
Update Tb_A set Fa = 1,Fb = 2, ....

2,498

社区成员

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

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