Получить последнюю дату на основе другого столбца - PullRequest
0 голосов
/ 29 марта 2019

enter image description here

У меня есть набор данных, который включает столбец DATETIME и столбец BANKCASENUMBER.Я хочу выбрать строки с самыми последними датами для каждого BANKCASENUMBER.

Это то, что я пробовал:

PROC SQL;    
CREATE TABLE WORK.QUERY_FOR_WORK_QUERY_FOR_ACCOUNT AS 
   ORDER BY t1.DATETIME LIMIT 1
   SELECT t1.LOGINNAME, 
      t1.FORENAME, 
      t1.SURNAME, 
      t1.BANKCASENUMBER, 
      MAX(t1.DATETIME), 
      t1.'Inbound/outbound'n, 
      t1.'succesvol?'n
  FROM WORK.WORK_QUERY_FOR_ACCOUNTACTIVITIES t1
  GROUP BY t1.BANKCASENUMBER;
QUIT;

В возвращаемой таблице должны быть указаны строки с латсетным DATETIME для каждогоBANKCASENUMBER.Таким образом, каждый BANKCASENUMBER должен появиться один раз.

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Я верю, что это то, что вы ищете.Идея состоит в том, чтобы получить последнюю временную метку для каждого номера банковского дела в подзапросе и присоединить ее к основной таблице.

PROC SQL;    
CREATE TABLE WORK.QUERY_FOR_WORK_QUERY_FOR_ACCOUNT AS
    SELECT t1.LOGINNAME, 
      t1.FORENAME, 
      t1.SURNAME, 
      t1.BANKCASENUMBER, 
      t1.DATETIME, 
      t1.'Inbound/outbound'n, 
      t1.'succesvol?'n
    FROM WORK.WORK_QUERY_FOR_ACCOUNTACTIVITIES t1
    JOIN (
        SELECT  t2.bankCaseNumber,
                MAX(t2.dateTime) as maxDateTime
        FROM WORK.WORK_QUERY_FOR_ACCOUNTACTIVITIES t2
        GROUP BY t2.BANKCASENUMBER
    ) m
        ON  m.bankCaseNumber = t1.bankCaseNumber
        AND t1.dateTime = m.maxDateTime
;
QUIT;
0 голосов
/ 01 апреля 2019

это кажется немного проще. Так как мы группируемся по LOGINNAME, оператор Имеющий будет ссылаться на максимум (DATETIME) в каждой группе

proc sql noprint;
   create table QUERY_FOR_WORK_QUERY_FOR_ACCOUNT as
     select * from WORK_QUERY_FOR_ACCOUNTACTIVITIES
       group by LOGINNAME
       having DATETIME = max(DATETIME);
quit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...