我有两个表 - 一个是帐户表,另一个是上诉表。两者都由Account_Id
加入。
帐户表具有唯一的person_code,account_id(一个person_code
可以有多个account_ids
,也可以有多个status_code
),状态代码为1,2,3。
上诉表格有account_id
和hearing_date
(每个account_id
可以有多个听证日期)。我需要从上诉表中获得最大hearing_date
小于01-JAN-2014,其中最大听证日期与帐户表status_code
中的状态代码“1”相对应。
示例:
帐户表:
person_id: 1234 account_id: 57897 status_code: 1
person_id: 1234 account_id: 65098 status_code: 2
person_id: 4567 account_id: 90455 status_code: 2
person_id: 4567 account_id: 98567 status_code: 1
上诉表:
account_id: 57897 hearing_date: 12-FEB-2014
account_id: 65098 hearing_date: 22-JAN-2014
account_id: 90455 hearing_date: 22-JAN-2015
account_id: 98567 hearing_date: 22-FEB-2014
我需要做一个更新声明,以便上诉表中的最大hearing_date
(hearing_date
是< 01-JAN-2014),其中account_id
有{帐户表中的{1}} 1更新为另一个status_code
。
我真的很感激,如果有人可以指导我,因为我正在尝试案例陈述和子查询,而且我没有得到任何快速:(
答案 0 :(得分:0)
我没有完全按照你的需要,但这里有一个粗略的想法:
update Accounts
set accounts_column = (
select max(hearing_date)
from Appeals
where Appeals.Account_Id = Accounts.Account_Id /* <- the important part */
and hearing_date < '20140101'
)
where status_code = 1