我需要从此表格中选择价值列表中NDI
的值和DATE_ISSUE = DATE_ISSUE_MAX
列表中每个值的NDI
。
我有这张桌子:
执行时:
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 EMPTY
:
而不是:
答案 0 :(得分:1)
虽然还有其他方法,但您需要这种方法的相关子查询:
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
);
答案 1 :(得分:1)
Yous应该比较与每个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 T1.NDI
from OM_DB.FT_PFS_SBC_TICKETS T1
INNER JOIN ( SELECT NDI, MAX(DATE_ISSUE) my_date
FROM OM_DB.FT_PFS_SBC_TICKETS
GROUP BY NDI ) T2 on T2.NDI = T1.NDI AND T2.my_date = T1.DATE_ISSUE
答案 2 :(得分:0)
对于NDI max(DATE_ISSUE)
,该表的31/10/17
为0559321162
。对于您提供的NDI,没有最大日期的条目。
您还应将in
子句添加到子查询中或使其成为相关查询
答案 3 :(得分:0)
实际上这个查询可以像这样简化:
SELECT NDI, MAX(DATE_ISSUE)
FROM OM_DB.FT_PFS_SBC_TICKETS WHERE NDI in('0556254201', '0559592626') GROUP BY NDI;