Sql Oracle:从同一个表中选择值(联接)
我需要从该表中选择值,其中值列表中的Sql Oracle:从同一个表中选择值(联接),sql,oracle,select,join,Sql,Oracle,Select,Join,我需要从该表中选择值,其中值列表中的NDI,以及DATE\u ISSUE=DATE\u ISSUE\u MAX中的每个值 我有这张桌子: 执行时: SELECT NDI FROM OM_DB.FT_PFS_SBC_TICKETS WHERE NDI in ('0556254201','0559592626') AND DATE_ISSUE=( SELECT MAX(DATE_ISSUE) FROM OM_DB.FT_PFS_SBC_TICKETS ); 我得到的NDI为空:
NDI
,以及DATE\u ISSUE=DATE\u ISSUE\u MAX
中的每个值
我有这张桌子:
执行时:
SELECT NDI
FROM OM_DB.FT_PFS_SBC_TICKETS
WHERE NDI in ('0556254201','0559592626')
AND DATE_ISSUE=(
SELECT MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS
);
我得到的NDI为空
:
而不是:
尽管还有其他方法,但您需要此方法的相关子查询:
select t.NDI
from OM_DB.FT_PFS_SBC_TICKETS t
where t.NDI in ('0556254201', '0559592626') and
t.DATE_ISSUE = (SELECT MAX(t2.DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS t2
WHERE t2.NDI = t.NDI
);
尽管还有其他方法,但您需要此方法的相关子查询:
select t.NDI
from OM_DB.FT_PFS_SBC_TICKETS t
where t.NDI in ('0556254201', '0559592626') and
t.DATE_ISSUE = (SELECT MAX(t2.DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS t2
WHERE t2.NDI = t.NDI
);
对于NDI0559321162
,该表的max(DATE\u ISSUE)
为31/10/17
。对于您提供的NDI,没有包含最长日期的条目
您应该将in
子句也添加到子查询中,或者将其作为相关查询对于NDI0559321162
,该表的max(DATE\u ISSUE)
为31/10/17
。对于您提供的NDI,没有包含最长日期的条目
您应该将
in
子句也添加到子查询中,或者将其设置为相关查询您应该比较与每个NDI相关的值
select NDI
from OM_DB.FT_PFS_SBC_TICKETS
where NDI in ('0556254201','0559592626')
and (NDI, DATE_ISSUE) =(SELECT NDI, MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS GROUP BY NDI);
或
您应该比较与每个NDI相关的值
select NDI
from OM_DB.FT_PFS_SBC_TICKETS
where NDI in ('0556254201','0559592626')
and (NDI, DATE_ISSUE) =(SELECT NDI, MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS GROUP BY NDI);
或
实际上,这个查询可以简化如下:
SELECT NDI, MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS WHERE NDI in('0556254201', '0559592626') GROUP BY NDI;
实际上,这个查询可以简化如下:
SELECT NDI, MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS WHERE NDI in('0556254201', '0559592626') GROUP BY NDI;
是的,这是oracle SharmaThe
max(DATE_ISSUE)
该表的NDI31/10/17
为0559321162
。对于您提供的NDI,没有包含最长日期的条目。是的,它是oracle SharmaThemax(date\u ISSUE)
,该表的NDI31/10/17
0559321162
。对于您提供的NDI,没有包含最长日期的条目。