我对一个视图提出了两个独立的请求,每个结果都有几行。您可以看到结果的两列中有一列是相同的。
我想知道如何合并这两个查询以获得一个包含3列的表,即使有些结果是空的。其目的是将若干结果分组,以获得总体进展结果。
谢谢。
第一个查询
SELECT appui.pa, COUNT(appui.gid) AS appui_non_lance
FROM genie_civil.v_appui appui
JOIN suivi.v_contour_aerien aer ON aer.id = appui.contour_etude
WHERE num_appui LIKE 'E%'
AND etat_appui != 'Non utilisé'
AND type_travaux != 'artère neuve'
AND avancement_etude_app = 'non renseigné'
AND date_envoi_pv IS NULL
AND date_retour_pv IS NULL
AND etat_pv = '--Non Renseigné--'
AND aer.date_depot_erdf IS NULL
AND aer.etat_etude_erdf = 'NC'
AND aer.etat_affaire IS NULL
AND date_com IS NULL
AND valid_com IS NULL
--AND date_envoi_executant_app IS NULL
AND date_retour_tvx_appui IS NULL
AND aer.etat_aat = '--Non renseigné--'
AND date_tfx IS NULL
AND valid_tfx IS NULL
AND aer.date_envoi_d2 IS NULL
GROUP BY appui.pa;
第二个查询
SELECT appui.pa, COUNT(appui.gid) AS appui_en_releve
FROM genie_civil.v_appui appui
JOIN suivi.v_contour_aerien aer ON aer.id = appui.contour_etude
WHERE num_appui LIKE 'E%'
AND etat_appui != 'Non utilisé'
AND avancement_etude_app IN('à relever', 'en cours relevé', 'à contrôler relevé')
AND date_envoi_pv IS NULL
AND date_retour_pv IS NULL
AND etat_pv = '--Non Renseigné--'
AND date_com IS NULL
AND valid_com IS NULL
--AND date_envoi_executant_app IS NULL
AND date_retour_tvx_appui IS NULL
AND aer.date_depot_erdf IS NULL
AND aer.etat_etude_erdf ='NC'
AND aer.etat_affaire IS NULL
AND aer.etat_aat = '--Non renseigné--'
AND date_tfx IS NULL
AND valid_tfx IS NULL
AND aer.date_envoi_d2 IS NULL
GROUP BY appui.pa;
3条答案
按热度按时间mdfafbf11#
你可能在找
UNION ALL
. 更多信息请参见postgres文档:https://www.postgresql.org/docs/8.3/queries-union.html
zpjtge222#
请使用下面的查询,
4nkexdtk3#
我想你只是在找两个不同的罪名。这种方法最好,因为您只扫描表一次。我已经将两个查询的共同条件移到
where
条款,而其他条款是各自条款的一部分case
表达。