这是我的第一个问题:
以下是我要执行的内容:
update SRM_SR_AuditLog
set MODIFIED_DATE = '1426816800'
, USER_X = 'Vaibhav via DB'
where REQUEST_ID in (
select max(REQUEST_ID) from SRM_SR_AuditLog
where ORIGINAL_REQUEST_ID = (
select SYSREQUESTID from SRM_Request
where REQUEST_NUMBER in (
'ASREQ0000136770', 'ASREQ0000137758', 'ASREQ0000138174',
'ASREQ0000138175', 'ASREQ0000138176', 'ASREQ0000138177',
'ASREQ0000138178', 'ASREQ0000138180', 'ASREQ0000138181',
'ASREQ0000138238', 'ASREQ0000138319', 'ASREQ0000138349',
'ASREQ0000139486', 'ASREQ0000140292', 'ASREQ0000140295',
'ASREQ0000140299', 'ASREQ0000140334', 'ASREQ0000140403',
'ASREQ0000140637', 'ASREQ0000140692' )
)
);
我知道以下不会起作用:
ORIGINAL_REQUEST_ID = (
select SYSREQUESTID from SRM_Request where REQUEST_NUMBER in
因为查询(select SYSREQUESTID from SRM_Request** where REQUEST_NUMBER = "XYZ"
)将返回更多一条记录,但对于SRM_Request中的每条记录,表“SRM_SR_AuditLog”中有多条记录。我希望“SRM_ST_Audit”表中针对上述查询返回的每个SYSREQUESTID的最新/最大请求ID引用。
希望这是有道理的。
我想为内部查询返回的每个值执行外部查询。 我该怎么办呢?
谢谢堆 VAB
答案 0 :(得分:0)
如果我理解正确,那么我认为你想要的是:
update SRM_SR_AuditLog set
MODIFIED_DATE = '1426816800',
USER_X = 'Vaibhav via DB' where
REQUEST_ID in
(
select max(REQUEST_ID) from SRM_SR_AuditLog where
ORIGINAL_REQUEST_ID IN
(
select SYSREQUESTID from SRM_Request where REQUEST_NUMBER in
(
'ASREQ0000136770', 'ASREQ0000137758', 'ASREQ0000138174', 'ASREQ0000138175', 'ASREQ0000138176', 'ASREQ0000138177', 'ASREQ0000138178', 'ASREQ0000138180', 'ASREQ0000138181', 'ASREQ0000138238', 'ASREQ0000138319', 'ASREQ0000138349', 'ASREQ0000139486', 'ASREQ0000140292', 'ASREQ0000140295', 'ASREQ0000140299', 'ASREQ0000140334', 'ASREQ0000140403', 'ASREQ0000140637', 'ASREQ0000140692'
)
)
group by ORIGINAL_REQUEST_ID
)
这将在SRM_Request
中找到给定请求号的所有请求ID;查找SRM_SR_AuditLog
中原始请求ID位于这些请求ID中的所有行;找到每个唯一原始请求ID的最大区域ID;并使用这些请求ID更新行。
答案 1 :(得分:0)
感谢Dave的回复。
SRM_Request与SRM_SR_AuditLog表有一对多的映射。
更新为" IN"将扫描所有记录,并找到一个max(REQUEST_ID)的记录。
从SRM_Request中选择SYSREQUESTID,其中REQUEST_NUMBER在 ( ' ASREQ0000136770',' ASREQ0000137758',' ASREQ0000138174',' ASREQ0000138175',' ASREQ0000138176',' ASREQ0000138177& #39;,' ASREQ0000138178',' ASREQ0000138180',' ASREQ0000138181',' ASREQ0000138238',' ASREQ0000138319',& #39; ASREQ0000138349',' ASREQ0000139486',' ASREQ0000140292',' ASREQ0000140295',' ASREQ0000140299',' ASREQ0000140334&# 39;,' ASREQ0000140403',' ASREQ0000140637',' ASREQ0000140692' )
这将返回20个引用 对于这20个引用中的每一个 - 我希望通过max(REQUEST_ID)从SRM_SR_AuditLog引用20个引用。
"从SRM_SR_AuditLog中选择max(REQUEST_ID),其中"
" IN"或" ="没有帮助。