0

コードに問題があります。私は2つのテーブルを持っています。最初の従業員 ID:

|従業員ID|

1

2

3

そして、employee_times という 2 番目のテーブル:

|Employee_id|Hours_dev|hours_pm|

|1|2|3|

|1|3|4|

|2|3|3|

私がやろうとしているのは、各従業員が働いた合計時間 (hours_dev+hours_pm) を計算することです。たとえば、employee_id 1 は 12 時間働いています

これまでのところ、最初のテーブルからすべての employee_id を取得し、for ループを使用して SQL ステートメントで employee_times を調べようとしました (以下のコードを参照)。ただし、employee_id と total_hours の両方に 0 が出力されるため、コードは機能しません。

localhost サーバーで MYSQL を使用しています。

$sql = "SELECT employee_id FROM 従業員"; $result = mysql_query($sql); while($row = mysql_fetch_array) { $employee_id = $row['employee_id']; }

              $employee_id_length = sizeof($employee_id);

              for($i = 0; $i < $employee_id_length; $i++)
              {
                 $sql4 = "SELECT employee_id, hours_dev, hours_pm FROM employee_times WHERE employee_id= '$employee_id[$i]'";
                        $result =  mysql_query($sql4);
                          while($info = mysql_fetch_array($result));
                        {
                            $employee_id = $info['employee_id'];
                            $hours_dev=$info['hours_dev'];
                            $hours_pm=$info['hours_pm'];
                            $total_hours = ($total_hours + $hours_dev + $hours_pm );

                        }

                        //print "$employee_id worked for $total_hours";
              }

どんな助けでも大歓迎です。

4

4 に答える 4

1

あなたは直接合計を得ることができます

 select employee_id, sum(hours_dev)+ sum(hours_pm) as total 
from employee_times WHERE employee_id= '1'
group by employee_id

このFiddle Demoを参照してください

于 2013-03-07T18:44:21.627 に答える
1

これにより、必要なデータが取得されるはずです

SELECT
  hours_dev,
  hours_pm,
  sum(hours_dev) + sum(hours_pm) as total_hours
FROM
  employee_times
WHERE
  employee_id = 123
GROUP BY
  employee_id
于 2013-03-07T18:44:29.613 に答える
1

集計関数を見てみましょう: http://www.w3schools.com/sql/sql_functions.asp http://www.w3schools.com/sql/sql_func_sum.asp

于 2013-03-07T18:47:23.157 に答える
0

この SQL クエリは、スクリプトよりもはるかに迅速に情報を取得する必要があります。

SELECT Employee_id, SUM(Hours_dev), SUM(Hours_pm), SUM(Hours_dev + Hours_pm) 
FROM employee_times 
GROUP BY Employee_id
于 2013-03-07T18:52:58.747 に答える