este é o codigo que tenho mas quero gerar uma matriz adjacencia origem e destino e no meio os valores da percentagem
$queryt = "select nuts3_res_1amc.id as id , nuts3_res_1amc.color as color , nuts3_res_1amc.localidade as source , nuts3_trab.color as color, nuts3_trab.localidade as target ,nuts3_trab.id as id2, count (*) as value,
dadostotais.total, round((count(nuts3_trab.localidade) * 100)::numeric / Dadostotais.total, 2) as percentagem
FROM (select count(dados.nuts3_resid_1amc) as total ,nuts3_resid_1amc as id 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)
INNER JOIN alfabetismo on (dados.alfabetismo=alfabetismo.id)
where $op and
nuts3_res_1amc.localidade!='Ainda não tinha nascido' and
nuts3_trab.localidade!='Não se aplica'
group by dados.nuts3_resid_1amc
) dadostotais ,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)
INNER JOIN alfabetismo on (dados.alfabetismo=alfabetismo.id)
where $op
and nuts3_res_1amc.localidade!='Ainda não tinha nascido'
and nuts3_trab.localidade!='Não se aplica'
and Dadostotais.id=nuts3_res_1amc.id
group by nuts3_res_1amc.id, nuts3_res_1amc.color,nuts3_res_1amc.localidade,nuts3_trab.localidade, nuts3_trab.color ,nuts3_trab.id,dadostotais.total
order by id ,id2";
$stmptrabalho = $conn->prepare($queryt);
$stmptrabalho->execute();
$trabalho = $stmptrabalho->fetchAll(PDO::FETCH_ASSOC);
echo "source,target,value \n";
foreach ($trabalho as $row) {
echo $row['source'].",".$row['target'].",".$row['percentagem']. "\n" ;
}
↧