sql语句,谢谢

qdmis123 2004-09-27 04:41:59
update rs_jbqk set (c31,d3,d4)=(select c4,c3,c2 from
(select aa.c1,aa.c4,aa.c3,aa.c2 from aa,rs_jbqk where aa.c1=rs_jbqk.c1
union
select c1,c31 as c4,d3 as c3,d4 as c2 from rs_jbqk where c1 not in
(select c1 from aa)) b
where rs_jbqk.c1=b.c1);

aa是一个临时表,根据工号,把aa的值属值到rs_jbqk中的三个字段.
执行的时候没错,可时间(d3,d4)没有被修改啊
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qdmis123 2004-09-28
  • 打赏
  • 举报
回复
谢谢各位了
yatouruihua 2004-09-27
  • 打赏
  • 举报
回复
update rs_jbqk set (c31,d3,d4)=(select aa.c4,aa.c3,aa.c2 from aa,rs_jbqk where aa.c1=rs_jbqk.c1) where rs_jbqk.c1 in aa.c1
这样不知行不行?
luke5678 2004-09-27
  • 打赏
  • 举报
回复
c2=(ISNULL(SELECT c2 FROM (...) b WHERE rs_jbqk.c1=b.c1),'0')//加个'0'
delphiseabird 2004-09-27
  • 打赏
  • 举报
回复
把=后边的那些查询查查到底查出来是什么
luke5678 2004-09-27
  • 打赏
  • 举报
回复
给2点建议:

1、个人觉的如下结构可能清晰一点

UPDATE rs_jbqk SET
c31=(ISNULL(SELECT c4 FROM (...) b WHERE rs_jbqk.c1=b.c1),'0'),
d3=(ISNULL(SELECT c3 FROM (...) b WHERE rs_jbqk.c1=b.c1),'0'),
c2=(ISNULL(SELECT c2 FROM (...) b WHERE rs_jbqk.c1=b.c1))

2、select c1,c31 as c4,d3 as c3,d4 as c2 from rs_jbqk where c1 not in
(select c1 from aa)//个人觉得没必要

ghchen 2004-09-27
  • 打赏
  • 举报
回复
不会,替你顶
qdmis123 2004-09-27
  • 打赏
  • 举报
回复
oracle数据库,其中d3,d4是日期型
qdmis123 2004-09-27
  • 打赏
  • 举报
回复
比如:
aa表中有十条记录,rs_jbqk中有100条记录.
实现:修改rs_jbqk中aa中有的十条记录,没有的就保持原来的值

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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