【发布时间】:2016-10-28 19:18:46
【问题描述】:
所以,我有两张桌子,INTERNAMENTO 和 DOC_ADMISSAO2。我想从名为 DIASINTERNAMENTO 的表 INTERNAMENTO 中更新一个列,其值与名为 DIASADMISSAO 的表 DOC_ADMISSAO2 的值相同,但有一些条件..
update INTERNAMENTO a
set a.DIASINTERNAMENTO = (
select b.DIASADMISSAO
from DOC_ADMISSAO2 b
where (a.EPISODIO = b.EPISODIO) AND (a.DATACRIACAO <= b.DATACRIACAO));
它给了我一个错误:
- 00000 - “单行子查询返回多于一行”
有什么建议吗?
【问题讨论】:
-
要么您必须在 where 子句中添加一个条件以始终获得单行,要么在子选择中对 b.DIASADMISSAO(即 MAX(b.DIASADMISSAO) )使用聚合
-
除了 Gordon 刚刚提供的内容之外,大概您的表格还显示了各种患者的“住院”和“入院”的详细信息……?你不需要在 where 子句中的 patient_id 相同吗?
标签: sql oracle sql-update dml