2016-10-04 3 views
2

у меня есть 3 таблицы (а, б, в) они связаны acc_no (a.acc_no, b.acc_no, c.acc_no)SQL Server присоединиться присоединение 3 таблицы, чтобы дать самую высокую дату из нескольких значений

и Я пытаюсь присоединиться к ним, таким образом, чтобы получить максимальное значение строки:

a.acc_no a.seq_no b.open_dt b.close_dt c.chg_dt 
-------- -------- --------- ---------- ---------- 
100001  500   2016-07-01 2016-07-16 2016-09-02 
100001  500   2016-07-01 2016-07-16 2016-09-05 
100001  510   2016-07-17 2016-09-30 2016-09-02 
100001  510   2016-07-17 2016-09-30 2016-09-05 
100002  502   2016-09-02 2016-09-27 2016-09-03 
100003  503   2016-09-03 2016-09-26 2016-09-25 

как я сделать его выглядеть следующим образом:

a.acc_no a.seq_no b.open_dt b.close_dt c.chg_dt 
-------- -------- --------- ---------- ---------- 
100001  510   2016-07-17 2016-09-30 2016-09-05 
100002  502   2016-09-02 2016-09-27 2016-09-03 
100003  503   2016-09-03 2016-09-26 2016-09-25 

в основном игнорируют самый низкий a.seq_no где acc_no то же самое, а также отображать самую высокую переменную chang_dt po из двух, с которыми я позволен.

Я пробовал все, но я либо не понимаю, либо делаю что-то неправильно, когда присоединяюсь к столам.

Для уточнения таблиц:

TABLE a TABLE b TABLE c 
------- ------- ------- 
acc_no  acc_no  acc_no 
seq_no  open_dt chang_dt 
      close_dt 

все три таблицы связаны acc_no

+0

Уточнить свой вопрос о том, что ваши три таблицы выглядят. –

+0

Вы еще не задали какой-либо запрос? –

ответ

1

Try использовать

SELECT a.acc_no, 
     Max(a.seq_no), 
     Max(b.open_dt), 
     Max(b.close_dt), 
     Max(c.chang.dt) 
FROM a 
     JOIN b 
     ON (a.acc_no = b.acc_no) 
     JOIN c 
     ON (b.acc_no = c.acc_no) 
GROUP BY a.acc_no