关于sql的update的问题

willianzhong 2005-04-26 09:17:15
我现在有两个表
费用(feiyong) 字段 kh(卡号) fy (费用)
计费(jifei) 字段 kh (卡号) jf (计费)
现在主表 feiyong 外表jifei 两者已经建了关联
现在要修改费用表,把费用表中的 费用 fy- 计费表的计费jf
怎么写sql来修改费用表中的字段fy?
下面出错了
update feiyong set fy=fy-feiyong.jf
where feiyong.ka=jifei.kh

请问怎么写
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yearlist 2005-04-27
  • 打赏
  • 举报
回复
我写的比较复杂,不过肯定对。如果表中数据有null值,注意使用decode()函数进行过滤。
yearlist 2005-04-27
  • 打赏
  • 举报
回复
update feiyong a set fy=( select fee
from
( select t1.kh kh,t1.fy-t2.jf fee
 from feiyong t1,jifei t2
 where t1.kh=t2.kh
)b where a.kh=b.kh
   )
where exists (select 1 from feiyong t1,jifei t2 where t1.kh=t2.kh )
chenchen2003 2005-04-27
  • 打赏
  • 举报
回复
上面错了。不好意思。
UPDATE feiyong SET fy=fy-(SELECT NVL(jf,0) FROM jifei WHERE kh=feiyong.kh)
chenchen2003 2005-04-27
  • 打赏
  • 举报
回复
UPDATE feiyong SET fy=fy-(SELECT NVL(jf) FROM jifei WHERE kh=feiyong.kh)
baojianjun 2005-04-27
  • 打赏
  • 举报
回复
樓上的可以
yown 2005-04-27
  • 打赏
  • 举报
回复
update feiyong a set fy=fy-NVL(t2.jf,0)

where exists (select 1 from feiyong t1,jifei t2 where t1.kh=t2.kh )
weiwenking 2005-04-26
  • 打赏
  • 举报
回复
update feiyong set fy=fy-(select jf from jifei where kh=feiyong.kh)
这里没有考虑jifei的相应记录不存在,若为NULL应另加处理
willianzhong 2005-04-26
  • 打赏
  • 举报
回复
刚才搞错了
update feiyong set fy=fy-jifei.jf
where feiyong.ka=jifei.kh

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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