我正在使用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
你似乎想要与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;