2017-01-26 6 views
0

私は正しい形式で正しい値を返さない単純なSQLを持っています。データは、次のされていますnullを返すことによるグループ

Emp Date   totaltime 
15 2017-01-25  05:18:35 
15 2017-01-25  04:51:03 
31 2017-01-25  05:33:22 
31 2017-01-25  03:31:36 
33 2017-01-25  04:35:06 
33 2017-01-25  04:22:24 

私は、次のSQL文を持っている:

select emp_num, TIME_FORMAT(sum(TotalTime),'%H:%i:%s') 
from pr_hours 
where date='2017-01-25' 
group by emp_num 

私は次のような結果を得る:

Emp_num + TIME_FORMAT(sum(TotalTime), '%H:%i:%s') ' 
15  + NULL 
31  + NULL 
33  + 08:57:30 

私が持つ上記のSQLのバリエーションを試してみました結果はミックスされますが、正しいデータはありません。

これは単純なSQL文であり、この時間がかかることはありませんので、正しい方向を指してください。

+1

それが役立つだろう。 –

+0

'sum(TotalTime)'とは何と思いますか?どうして? – shmosel

+0

私は合計(TotalTime)が私に従業員がレコードの数に関係なく合計時間を与えることを期待しています。 TIME_FORMATが問題を引き起こしているようです。 TIME_FORMATを削除すると、数字は正しく生成されますが、フォーマットされません。だから今私の質問は、私はどのように結果をフォーマットすることができると思いますか? –

答えて

0

これを試してください:あなたは、あなたが「正しい」結果として、見たいものを記述する場合

select emp_num, sec_to_time(sum(time_to_sec(TotalTime))) 
from pr_hours 
where date='2017-01-25' 
group by emp_num 
+0

それはトリックでした。ありがとう。私が最善を尽くして、ドキュメントをもう一度読んでください。 –

関連する問題