Запрос, показывающий только самую последнюю дату в поле, когда все элементы SELECTS не находятся в группе - PullRequest
0 голосов
/ 31 мая 2018

** Переписано для уточнения.** Я просмотрел более десятка постов на нескольких сайтах, пытаясь это выяснить, и попытался применить упомянутые вещи - и все без удачи.У меня есть запрос, объединяющий 3 таблицы.Я использую MAX (дата) в области SELECT вместе с 9 другими полями.Что-то, что я делаю, требует от меня перечисления всех этих полей в области GROUP BY для выполнения запроса.Я, очевидно, что-то делаю не так.

В идеале я бы хотел, чтобы запрос возвращал только одну запись для человека на основе самой последней записи.Таким образом, человек с уникальным идентификатором может иметь 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

1 Ответ

0 голосов
/ 31 мая 2018

Вы не хотите group by.Вы хотите фильтрации.Один из методов:

select t1.*
from table_1 t1
where t1.date = (select max(tt1.date) from table_1 tt1 where tt1.? = t1.?);

Ваш запрос немного неясен, что это за столбцы.? для столбца, который идентифицирует каждого клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...