2016-01-20 133 views
2

我有这样的查询:ORA-01427单行子查询返回不止一行

select bb10.ID_SEKTOR_10 as kode, 
bb10.NAME_SEKTOR_10 as sektor10, 
(
    select count(*) as HUBBNI_SEKTOR_EKONOMI10 
    from bbcust_debitur_dev 
    where HUBBNI_SEKTOR_EKONOMI10 = bb10.ID_SEKTOR_10 
    and STATUS = 2 
    group by HUBBNI_SEKTOR_EKONOMI10 
) as total_sek_10, 
(
    select sum(distinct bbcd.baki_debet) as baki_debet 
    from bbcust_cashloan_dev bbcd, bbcust_debitur_dev bdd 
    where bbcd.row_id = bdd.row_id 
    and bdd.HUBBNI_SEKTOR_EKONOMI10 = bb10.ID_SEKTOR_10 
    and bbcd.status =1 and bdd.status=2 
    group by bdd.row_id 
) as total_rek_10 
from BBCUST_SEKTOR_10_DEV bb10; 

我得到一个错误

ORA-01427单行子查询返回不止一行

但之前我只是有这样的数据,我没有任何错误。 此查询没有任何错误。

select bb10.ID_SEKTOR_10 as kode, 
bb10.NAME_SEKTOR_10 as sektor10, 
(
    select count(*) as HUBBNI_SEKTOR_EKONOMI10 
    from bbcust_debitur_dev 
    where HUBBNI_SEKTOR_EKONOMI10 = bb10.ID_SEKTOR_10 
    and STATUS = 2 
    group by HUBBNI_SEKTOR_EKONOMI10 
) as total_sek_10 
from BBCUST_SEKTOR_10_DEV bb10; 

而结果是这样的:

enter image description here

bbcust_cash_loan像这样的stucture:

enter image description here

对于数据库的结构是:bbcust_debitur_dev有关系,与BBCUST_SEKTOR_10_DEVbbcust_cashloan_dev

我想计算bbcust_cashloan_dev中的每个值,但我需要知道BBCUST_SEKTOR_10_DEV中的所有数据。这就是为什么我加入所有数据,所以我从bbcust_cashloan_dev得到总价值,其中数据在BBCUST_SEKTOR_10_DEV

你能告诉我如何解决我的查询吗?

+1

只需从您的子查询中删除group by子句即可。这里不需要分组子句。 –

+0

@ Md.ShamimAlMamun你可以在回答问题上发帖,我会投你一票,谢谢。 – user3505775

回答

1

试试这个.......

select bb10.ID_SEKTOR_10 as kode, 
bb10.NAME_SEKTOR_10 as sektor10, 
(
    select count(*) as HUBBNI_SEKTOR_EKONOMI10 
    from bbcust_debitur_dev 
    where HUBBNI_SEKTOR_EKONOMI10 = bb10.ID_SEKTOR_10 
    and STATUS = 2 
    ) as total_sek_10, 
(
    select sum(distinct bbcd.baki_debet) as baki_debet 
    from bbcust_cashloan_dev bbcd, bbcust_debitur_dev bdd 
    where bbcd.row_id = bdd.row_id 
    and bdd.HUBBNI_SEKTOR_EKONOMI10 = bb10.ID_SEKTOR_10 
    and bbcd.status =1 and bdd.status=2 
    ) as total_rek_10 
from BBCUST_SEKTOR_10_DEV bb10; 

有一种可能性,即超过一排的多个group by bdd.row_id回报。如果不了解您的业务,就不可能提供建议。