Mysql 使用2个不同的位置将2个查询设置为1

Mysql 使用2个不同的位置将2个查询设置为1,mysql,Mysql,如何将这些查询连接到1?我需要这样的列-qurum\u id、qurum、I、II。您可以使用条件聚合。诀窍是根据月份条件对记录进行有条件计数,这对于当前的两个查询是不同的。请注意,该年的WHERE条件是单独保留的,因为两个查询都共享此条件 SELECT qurum_id, qurum, COUNT(qurum1) AS II FROM `qurum` AS qur2 JOIN (SELECT id, qurum1,input_date FROM DATA ) `bb` ON qur2.quru

如何将这些查询连接到1?我需要这样的列-qurum\u id、qurum、I、II。

您可以使用条件聚合。诀窍是根据月份条件对记录进行有条件计数,这对于当前的两个查询是不同的。请注意,该年的WHERE条件是单独保留的,因为两个查询都共享此条件

SELECT qurum_id, qurum, COUNT(qurum1) AS II FROM `qurum` AS qur2
JOIN (SELECT id, qurum1,input_date FROM DATA ) `bb` ON qur2.qurum_id = 
bb.qurum1
WHERE DATE_FORMAT(bb.input_date, '%Y') = $year AND DATE_FORMAT(bb.input_date, '%m') BETWEEN 06 AND 12

GROUP BY qurum_id
ORDER BY qurum_id

您可以使用union将两个脚本的输出存储在两个不同的temp/var表中,然后使用union。我知道,但是如何使用?你能写信吗?我不认为工会是实现你预期产出的最佳途径。
SELECT qurum_id, qurum, COUNT(qurum1) AS II FROM `qurum` AS qur2
JOIN (SELECT id, qurum1,input_date FROM DATA ) `bb` ON qur2.qurum_id = 
bb.qurum1
WHERE DATE_FORMAT(bb.input_date, '%Y') = $year AND DATE_FORMAT(bb.input_date, '%m') BETWEEN 06 AND 12

GROUP BY qurum_id
ORDER BY qurum_id
SELECT
    qurum_id,
    SUM(CASE WHEN DATE_FORMAT(aa.input_date, '%m') < 07
               THEN 1 END) AS I,
    SUM(CASE WHEN DATE_FORMAT(aa.input_date, '%m') BETWEEN 06 AND 12
               THEN 1 END) AS II
FROM qurum AS qur
INNER JOIN (SELECT id, qurum1,input_date FROM DATA ) AS aa
    ON qur.qurum_id = aa.qurum1
WHERE DATE_FORMAT(aa.input_date, '%Y') = $year
GROUP BY qurum_id
ORDER BY qurum_id