Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
Tenho o seguinte problema:
Tenho uma consulta normal no banco que me retorna duas colunas, dessas duas colunas faço um conta no proprio php e gero uma terceira coluna com o resultado das outras duas.
Como faço para ordenar todas as colunas pelo resultado da terceira?
Essa é minha consulta:
SELECT NET_TERMINAIS2.COD_NODE,
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' AND NET_TERMINAIS2.TM_TX < 40 OR NET_TERMINAIS2.TM_TX > 50 THEN 1 END) /
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' THEN 1 ELSE 0 END) as TX,
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' AND NET_TERMINAIS2.CMTS_SNR < 23 THEN 1 ELSE 0 END) /
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' THEN 1 ELSE 0 END) AS SNR_UP,
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' AND NET_TERMINAIS2.TM_SNR < 35 THEN 1 ELSE 0 END) /
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' THEN 1 ELSE 0 END) AS SNR_DOWN,
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' AND NET_TERMINAIS2.CMTS_FEC_UP_N_CORRIGIDO > 1.00 THEN 1 ELSE 0 END) /
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' THEN 1 ELSE 0 END) AS FEC_N,
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' AND NET_TERMINAIS2.CMTS_FEC_UP_CORRIGIDO > 5.00 THEN 1 ELSE 0 END) /
SUM(CASE WHEN NET_TERMINAIS2.TM_STATUS = 'Online' THEN 1 ELSE 0 END) AS FEC_C,
SUM(CASE WHEN NET_TERMINAIS2.CI_SIGLA = 'CWB C' THEN 1 ELSE 0 END) AS TOTAIS
FROM NET_TERMINAIS2
GROUP BY NET_TERMINAIS2.COD_NODE
ORDER BY $arquivo DESC, NET_TERMINAIS2.COD_NODE
if($data->TX == ''){
$peso_TX = '0';
}elseif($data->TX > 0.50){
$peso_TX = '0.50';
}else{
$peso_TX = '0';
}
if($data->FEC_N == 0){
$peso_FEC_N = '0';
}else{
$peso_FEC_N = '1.00';
}
if($data->FEC_C == 0){
$peso_FEC_C = '0';
}else{
$peso_FEC_C = '1.00';
}
if($data->SNR_UP == 0){
$peso_SNR_UP = '0';
}else{
$peso_SNR_UP = '0.25';
}
if($data->SNR_DOWN == 0){
$peso_SNR_DOWN = '0';
}else{
$peso_SNR_DOWN = '0.25';
}
Esse acima são os valores resultantes que eu somo
$soma = $peso_TX + $peso_FEC_N + $peso_FEC_C + $peso_SNR_UP + $peso_SNR_DOWN;
Esse é o valor que eu queria que ordenasse toda a consulta...
por que não gera essa coluna no propio sql e orderna por lá mesmo?
Da uma olhada na query
por que não gera essa coluna no propio sql e orderna por lá mesmo?