0

簡単な質問のように思えますが、その方法を試してみることができません。

Employee id | dev_time | pm_time
1           |    4     |    5
2           |    2     |    3
3           |    6     |    2
2           |    3     |    6
3           |    4     |    4
1           |    1     |    5

ローカルホストに次のようなテーブルがあります。各従業員が費やした合計時間 (dev_time + pm_time) を調べるにはどうすればよいですか? SQL ステートメントと while/for/foreach ループ ソリューションの両方が必要です

たとえば、employee_id 1 が合計 15 時間を費やしたか、employee_id 2 が合計 14 時間を費やしたか

ありがとう!!!!!

4

3 に答える 3

4

これを試して:

  select employee_id, sum(dev_time + pm_time) as totalhours
    from mytable
group by employee_id

サンプル出力 ( DEMO ):

EMPLOYEE_ID | TOTALHOURS
1             15
2             14
3             16
于 2013-03-04T21:44:09.303 に答える
3

I require both the SQL statement and the while/for/foreach loops solution

さて、あなたに悪い知らせがあります。ストレート コードの代わりに、いくつかのリンクを提供して、自分でこれを理解できるようにします。

まず、基本的なSQL Operatorsを調べます。そうすれば、目的の効果を得たい SQL ステートメントを自分で推測するのはそれほど難しくないことがわかります。

次に、テキストによる説明を提供します。

Query all tuples from the database

Loop through each one, first grabbing their dev_time value, and summing it with their pm_time value.

Store the sum value somewhere

Conrad Friz が述べたように、このテキストの説明は「N+1 選択問題」につながる可能性があり、うまくいけば解決したように、これは単一のステートメントで実行できます。

単純にコードをコピーして貼り付けるのではなく、この方法を採用していただければ幸いです。

于 2013-03-04T21:45:16.440 に答える
2

これは SQL 内で直接行うことができます。使用している DBMS はわかりませんが、MySQL では次のようになります。

SELECT *, (dev_time+pm_time) AS total FROM table_name
于 2013-03-04T21:43:47.000 に答える