简体   繁体   English

(mysql)子查询返回多行

[英](mysql) subquery returns more than one row

I'm trying to fetch the total .of "jml_pddk_miskin" in each district("kecamatan") with Ascending order. 我正在尝试以升序获取每个地区(“ kecamatan”)中的“ .jml_pddk_miskin”总数。 But I get the error as "subquery returns more than one row". 但是我收到错误,因为“子查询返回多个行”。

this is my query: 这是我的查询:

select 
mkec.id AS id,mkec.nama AS kecamatan,rpb.tahun AS tahun,
ifnull((select sum(rpb.jml_pddk_miskin) 
        from rekap_penduduk_bps rpb 
        join master_kelurahan mkel on mkel.id = rpb.id_kelurahan 
        where 
        mkel.id_kecamatan = mkec.id 
        and rpb.id_kelurahan = mkel.id 
        group by rpb.id ),0) AS total_miskin 
from master_kecamatan mkec 
join rekap_penduduk_bps rpb 
group by mkec.nama 
order by mkec.id

This is the result of above query: result query 这是上述查询的结果: result查询

I want result like this... result query 我想要这样的结果... 结果查询

Your inner query 您的内部查询

select sum(rpb.jml_pddk_miskin) 
from rekap_penduduk_bps rpb 
join master_kelurahan mkel on mkel.id = rpb.id_kelurahan 
where 
mkel.id_kecamatan = mkec.id 
and rpb.id_kelurahan = mkel.id 
group by rpb.id

is obviously returning more than one row (by the group by clause). 显然返回了多于一行(通过group by子句)。

try this, 尝试这个,

   SELECT mkec.id AS id,mkec.nama AS kecamatan,rpb.tahun AS tahun,IFNULL((SELECT SUM(rpb.jml_pddk_miskin) 
FROM (rekap_penduduk_bps rpb JOIN master_kelurahan mkel ON mkel.id = rpb.id_kelurahan) WHERE 
mkel.id_kecamatan = mkec.id AND rpb.id_kelurahan = mkel.id GROUP BY rpb.id HAVING rpb.id_kelurahan = mkel.id ),0)
 AS total_miskin FROM master_kecamatan mkec JOIN rekap_penduduk_bps rpb ON mkec.id= rpb.id_kelurahan GROUP BY mkec.nama ORDER BY mkec.id

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM