2016-09-09 12 views
0

次のPHPスクリプトを使用して、MySQLテーブルからデータを取得して変更し、その結果をHTMLテーブルに出力します。私は$total_client_time/$total_available_time * 100によって作成された$utilization_percentage変数によって昇順にデータを並べ替えることを望んでいました。これは$sqlクエリの後に発生するので、これがPHPで達成できるかどうか疑問に思っていますか?または、クエリ内で計算された$utilization_percentageを持つようにMySQLクエリを変更する方法がありますか?次にクエリにORDER BY句を実行できますか?これを達成する最良の方法は何でしょうか?PHPでMySQLクエリから昇順に値を並べる方法は?

+1

「((x + y + z)/ a)AS u'、次に「ORDER BY u ASC」のようなもの – cmorrissey

答えて

3

クエリで計算してからORDER BYで使用できます。

$sql = "SELECT SUM(t.available_time) AS total_available_time, 
       SUM(t.chargeable_time) AS total_chargeable_time, 
       SUM(t.admin_time) AS total_admin_time, 
       SUM(t.new_business_time) AS total_new_business_time, 
       c.name AS companyName, 
       (SUM(t.chargeable_time) + SUM(t.admin_time) + SUM(t.new_business_time))/SUM(t.available_time) * 100 AS utilization_percentage 
     FROM Timesheet t 
     LEFT JOIN fos_user u ON(u.id = t.user_id) 
     LEFT JOIN company c ON(c.id = u.company_id) 
     GROUP BY u.company_id 
     ORDER BY utilization_percentage";