合并两个 SQL 查询在单个语句中选择和计数

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

我正在开发项目,我使用两个查询来获取我想要处理的结果。

查询1

SELECT MID FROM PMS.MACHINE WHERE STATUS=1 AND MID !=0;

查询2

SELECT MID,COUNT(STATUS) AS QUEUE
FROM PMS.QUEUE
WHERE STATUS=0
GROUP BY MID
ORDER BY MID ASC;

我想将这两个查询合并为一个查询,结果应显示为 PMS.MACHINE 中的 MID 和 PMS.QUEUE 表中的 QUEUE 计数。

如果没有计数则结果为零

这些是我当前查询 1 的结果

enter image description here

查询2结果

enter image description here

在查询 2 中,如果值为零,则返回如下

enter image description here

我想要这样的结果

enter image description here

sql mysql select count sql-update
1个回答
0
投票
SELECT MID, CASE WHEN T1.QUEUE IS NULL THEN 0 ELSE T1.QUEUE END AS QUEUE
  FROM PMS.MACHINE 
       FULL OUTER JOIN (SELECT MID, COUNT (STATUS) AS QUEUE
                 FROM PMS.QUEUE
                WHERE STATUS = 0
             GROUP BY MID
             ORDER BY MID ASC) T1
           ON PMS.MACHINE.MID = T1.MID
 WHERE STATUS = 1 AND MID != 0;
© www.soinside.com 2019 - 2024. All rights reserved.