这个SQL语句如何写?求教!

sj_friend 2003-04-01 07:22:09
我有如下SQL:但有语法错误
update zy_服务费用
set 用量=@num*r.收费数量,
from
(
select 诊疗项目ID,收费数量,收费细目ID from BASE_诊疗费用关系 where 诊疗项目ID=@diagnosis_id
) as r
on r.收费细目ID=zy_服务费用.项目ID
where 病人住院ID=@inpatient_id and 处方号=@CFH and 诊疗ID=@diagnosis_id and 登记时间=@djsj

我需要更新表“zy_服务费用”的字段:“用量”
但需要更新的值需要乘上表“zy_服务费用.项目ID 与 表BASE_诊疗费用关系.收费细目ID关联后对应表“BASE_诊疗费用关系”的“收费数量”字段
请问如何写这类的语句?
...全文
42 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-04-01
  • 打赏
  • 举报
回复
它和:

update zy_服务费用
set 用量=@num*r.收费数量,
from
(
select 诊疗项目ID,收费数量,收费细目ID from BASE_诊疗费用关系 where 诊疗项目ID=@diagnosis_id
) as r join zy_服务费用
on r.收费细目ID=zy_服务费用.项目ID
where 病人住院ID=@inpatient_id and 处方号=@CFH and 诊疗ID=@diagnosis_id and 登记时间=@djsj

是一样的,如果你要写join就按上面这么写
sj_friend 2003-04-01
  • 打赏
  • 举报
回复
但是语句:“select 诊疗项目ID,收费数量,收费细目ID from BASE_诊疗费用关系 where 诊疗项目”会查询出数目大于一的结果集合,把限制条件写在where中照样回出错。
pengdali 2003-04-01
  • 打赏
  • 举报
回复
update zy_服务费用
set 用量=@num*r.收费数量,
from
(
select 诊疗项目ID,收费数量,收费细目ID from BASE_诊疗费用关系 where 诊疗项目ID=@diagnosis_id
) as r
where r.收费细目ID=zy_服务费用.项目ID,病人住院ID=@inpatient_id and 处方号=@CFH and 诊疗ID=@diagnosis_id and 登记时间=@djsj

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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