首页 > 解决方案 > 如何将 SQL 查询合并为一个查询

问题描述

我不熟悉 SQL,也不知道如何将多个查询组合成一个查询。如何将这两个查询合二为一,以便在一张表中获得一个结果?

第一个查询是带回所有不同的文档状态和其他字段:

 SELECT DISTINCT a.DOC_COMP, a.CRFNO, a.DOC_DATE, a.APPID, b.REQID, b.REQDT, (SELECT COUNT(a.DOC_COMP) AS StatusCount FROM PSCRF a) FROM PSCRF a INNER JOIN PSCRFWF b ON b.CRFNO = a.CRFNO 

第二个查询是带回所有不同的部门:

SELECT DISTINCT c.DEPT_CD, 
c.DEPT_NM, 
c.USER_ID 
FROM EFORM.USERPROFILE c

这两个查询将使用左连接进行连接:

LEFT JOIN USERPROFILE c ON c.USER_ID = b.REQID

结果:

此查询的结果是在交叉表中按部门显示状态计数。示例如下:

        Dept1 Dept2 Dept3 
Status1   2     1     4 
Status2   1     2     1 
Status3   2     3     6

图片

谢谢

标签: mysqlsqloracle

解决方案


需要更多信息来确定您的要求,但以下是我的最佳猜测。

SELECT a.DOC_COMP AS Status, c.DEPT_CD AS Department, count(*)
FROM PSCRF a INNER JOIN PSCRFWF b ON b.CRFNO = a.CRFNO
LEFT JOIN USERPROFILE c ON c.USER_ID = b.REQID
GROUP BY a.DOC_COMP, c.DEPT_CD

这应该让你得到这样的东西

  Status    Department  Count 
  Status1     Dept1        2
  Status1     Dept2        1
  Status1     Dept3        4
  Status2     Dept1        1
  Status2     Dept2        2
  Status2     Dept3        1

等等。

希望这可以帮助


推荐阅读