は次のように動作するはずです:あなたはregistra_denunciasからの結果を期待するならば、registra_aprehendidos内のレコードに一致せず、
SELECT apre.agno
,apre.cod_ine_reg
,apre.total_aprehendidos
,denu.total_denuncias
FROM (
SELECT ra.agno,cod_ine_reg, SUM(ra.cantidad) AS total_aprehendidos
FROM registra_aprehendidos ra JOIN comuna USING (id_pref)
JOIN provincia USING (cod_ine_prov)
JOIN region USING (cod_ine_reg)
GROUP BY ra.agno, cod_ine_reg
) apre
LEFT OUTER JOIN
(
SELECT rd.agno,cod_ine_reg, SUM(rd.cantidad) AS total_denuncias
FROM registra_denuncias rd JOIN comuna USING (id_pref)
JOIN provincia USING (cod_ine_prov)
JOIN region USING (cod_ine_reg)
GROUP BY rd.agno, cod_ine_reg
) denu
ON apre.agno = denu.agno
AND apre.cod_ine_reg = denu.cod_ine_reg
FULL JOINのようなより良いアプローチのようになります。
SELECT COALESCE(apre.agno, denu.agno) as agno
,COALESCE(apre.cod_ine_reg, denu.cod_ine_reg) as cod_ine_reg
,COALESCE(apre.total_aprehendidos,0) as total_aprehendidos
,COALESCE(denu.total_denuncias,0) as total_denuncias
FROM (
SELECT ra.agno,cod_ine_reg, SUM(ra.cantidad) AS total_aprehendidos
FROM registra_aprehendidos ra JOIN comuna USING (id_pref)
JOIN provincia USING (cod_ine_prov)
JOIN region USING (cod_ine_reg)
GROUP BY ra.agno, cod_ine_reg
) apre
FULL OUTER JOIN
(
SELECT rd.agno,cod_ine_reg, SUM(rd.cantidad) AS total_denuncias
FROM registra_denuncias rd JOIN comuna USING (id_pref)
JOIN provincia USING (cod_ine_prov)
JOIN region USING (cod_ine_reg)
GROUP BY rd.agno, cod_ine_reg
) denu
ON apre.agno = denu.agno
AND apre.cod_ine_reg = denu.cod_ine_reg
それらをテーブルとして使用することを完全に忘れてしまいました。 – Matias
@マティアスあなたは大歓迎です。私にも起こります。私はいつでも喜んで助けてくれる –