从两个表中选择最大日期,同时连接3个表

问题描述 投票:0回答:1

我正在使用Oracle SQL,我正在尝试获取一个用户当前拥有的打开和关闭请求数。

我有三个表,一个用于打开的请求,一个用于关闭的请求,一个用于用户详细信息。

我加入了三个表,一个是内连接,另一个是左外连接。

但是,我遇到了一个问题,即在两个表(打开的请求和已关闭的请求)中仅在MAX日期内输出数据。

我已经使用下面的代码加入表格,你能告诉我如何设置从打开的请求表“O”获取最大日期的条件,以及从已关闭的请求表“C”获取最大日期的条件吗?我要用“with clause”吗?我如何在这里使用它?我希望结果是一个包含三列的表,用户名,已打开的请求数以及已关闭的请求数。

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
sql oracle
1个回答
0
投票

你似乎想要与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;
© www.soinside.com 2019 - 2024. All rights reserved.