выберите максимальные даты из двух таблиц, при этом объединяя 3 таблицы - PullRequest
0 голосов
/ 05 сентября 2018

Я использую Oracle SQL и пытаюсь узнать, сколько открытых и закрытых запросов у одного пользователя в настоящее время.

У меня есть три таблицы: одна для открытых запросов, одна для закрытых запросов и одна для пользовательских данных.

Я присоединился к трем таблицам, один раз с внутренним соединением, другой раз с левым внешним соединением.

Однако я сталкиваюсь с проблемой создания условия, при котором данные выводятся в пределах только МАКСИМАЛЬНОЙ даты из двух таблиц (открытых запросов и закрытых запросов).

Я использовал приведенный ниже код для объединения таблиц. Подскажите, пожалуйста, как поставить условие для получения как максимальной даты из таблицы открытых запросов "O", так и максимальной даты из таблицы закрытых запросов "C" ? Должен ли я использовать «с оговоркой»? Как я могу использовать это здесь? Я хочу, чтобы результатом была таблица из трех столбцов, имя пользователя, сколько открытых запросов у него и сколько закрытых запросов у него.

SELECT COUNT (O.USER_ID) ,COUNT (C.USER_ID), USER_NAME
FROM USER_OREQ O 
  INNER JOIN USER_DETAILS U ON  O.USER_ID = U.ID 
  INNER JOIN USER_CREQ C ON U.ID = C.USER_ID
GROUP BY USER_NAME
ORDER BY USER_NAME ASC

1 Ответ

0 голосов
/ 05 сентября 2018

Вы, кажется, хотите GROUP BY предложение с MAX():

SELECT USER_NAME, MAX(O.DATE), MAX(C.DATE)
FROM USER_OREQ O INNER JOIN 
     USER_DETAILS U ON  O.USER_ID = U.ID INNER JOIN 
     USER_CREQ C 
     ON U.ID = C.USER_ID
GROUP BY USER_NAME
ORDER BY USER_NAME ASC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...