query to get percentage

0

I am doing a query to get percentage by zone but it is not working me very well

    select nuts3_res_1amc.id as id ,nuts3_res_1amc.localidade as source, nuts3_trab.localidade as target ,nuts3_trab.id as id2,
((COUNT(*) * 100)/ 
(select count(*) FROM dados
    INNER JOIN nuts3_res_1amc ON (dados.nuts3_resid_1amc = nuts3_res_1amc.id)
    INNER JOIN nuts3_trab ON (dados.nuts3_trab = nuts3_trab.id)
    INNER JOIN sexo ON (dados.sexo = sexo.id) 
    INNER JOIN meiovida on (dados.meiovida=meiovida.id)
    where  dados.censo='2001' and sexo.sexo='Feminino' and nuts3_res_1amc.localidade!= nuts3_trab.localidade and  nuts3_res_1amc.localidade!='Ainda não tinha nascido' and nuts3_trab.localidade!='Não se aplica'
    group by nuts3_res_1amc.id,nuts3_res_1amc.localidade))as t
    FROM dados
    INNER JOIN nuts3_res_1amc ON (dados.nuts3_resid_1amc = nuts3_res_1amc.id)
    INNER JOIN nuts3_trab ON (dados.nuts3_trab = nuts3_trab.id)
    INNER JOIN sexo ON (dados.sexo = sexo.id) 
    INNER JOIN meiovida on (dados.meiovida=meiovida.id)
    where  dados.censo='2001' and sexo.sexo='Feminino'  and nuts3_res_1amc.localidade!= nuts3_trab.localidade and  nuts3_res_1amc.localidade!='Ainda não tinha nascido' and nuts3_trab.localidade!='Não se aplica'
    group by nuts3_res_1amc.id, nuts3_res_1amc.localidade,nuts3_trab.localidade ,nuts3_trab.id 
    order by id ,id2

If you put it this way just for mine it works fine

select nuts3_res_1amc.id as id ,nuts3_res_1amc.localidade as source, nuts3_trab.localidade as target ,nuts3_trab.id as id2,
((COUNT(*) * 100)/ 
(select count(*) FROM dados
    INNER JOIN nuts3_res_1amc ON (dados.nuts3_resid_1amc = nuts3_res_1amc.id)
    INNER JOIN nuts3_trab ON (dados.nuts3_trab = nuts3_trab.id)
    INNER JOIN sexo ON (dados.sexo = sexo.id) 
    INNER JOIN meiovida on (dados.meiovida=meiovida.id)
    where  dados.censo='2001' and sexo.sexo='Feminino' and nuts3_res_1amc.localidade!= nuts3_trab.localidade and  nuts3_res_1amc.localidade='Minho-Lima' and  nuts3_res_1amc.localidade!='Ainda não tinha nascido' and nuts3_trab.localidade!='Não se aplica'
    group by nuts3_res_1amc.id,nuts3_res_1amc.localidade))as t
    FROM dados
    INNER JOIN nuts3_res_1amc ON (dados.nuts3_resid_1amc = nuts3_res_1amc.id)
    INNER JOIN nuts3_trab ON (dados.nuts3_trab = nuts3_trab.id)
    INNER JOIN sexo ON (dados.sexo = sexo.id) 
    INNER JOIN meiovida on (dados.meiovida=meiovida.id)
    where  dados.censo='2001' and sexo.sexo='Feminino' and nuts3_res_1amc.localidade='Minho-Lima' and nuts3_res_1amc.localidade!= nuts3_trab.localidade and  nuts3_res_1amc.localidade!='Ainda não tinha nascido' and nuts3_trab.localidade!='Não se aplica'
    group by nuts3_res_1amc.id, nuts3_res_1amc.localidade,nuts3_trab.localidade ,nuts3_trab.id 
    order by id ,id2

Give me this error:

  

ERROR: more than one row returned by a subquery used as an expression   SQL state: 21000

    
asked by anonymous 30.06.2016 / 13:14

0 answers