**重写以澄清。 **我已经在多个网站上查看了十几个帖子,试图解决这个问题并尝试应用所提到的内容 - 一切都没有运气。我有一个连接3个表的查询。我在SELECT区域中使用MAX(日期)以及其他9个字段。我正在做的事情要求我列出GROUP BY区域中的所有字段,以便运行查询。我显然做错了什么。
理想情况下,我希望查询根据最近的条目仅为一个人返回1条记录。因此,具有唯一ID的人可能有3条记录,因为3个日期条目。我希望那一行有最新的日期条目。对不起,如果这很明显是泥。想法? TIA!
SELECT
DISTINCT s.ID, s.FIRST_NAME, s.LAST_NAME, a.ADDR1, a.CITY, a.STATE, a.ZIP, e.EFF_DT, e.TERM_DT, MAX(e.MEPE_EFF_DT)
FROM SUBSC s
INNER JOIN ADDR a
on s.SID = a.SID
INNER JOIN ELIG e
on e.EID = s.EID
WHERE a.GID = 99
AND e.ELIG_IND = 'Y'
GROUP BY s.ID, s.FIRST_NAME, s.LAST_NAME, a.ADDR1, a.CITY, a.STATE, a.ZIP, e.EFF_DT, e.TERM_DT
ORDER BY s.LAST_NAME ASC
答案 0 :(得分:0)
您不希望group by
。你想要过滤。一种方法是:
select t1.*
from table_1 t1
where t1.date = (select max(tt1.date) from table_1 tt1 where tt1.? = t1.?);
您的查询有点不清楚哪些列是什么。 ?
用于标识每个客户的列。