次のようなテーブルがあります。
emp_id | code | min
1234 | TLPAID | 480
4321 | TLPAID | 480
4321 | UPAB | 4
4321 | UUAB | 50
5555 | TLPAID | 480
5555 | ALLEUP | 10
...何百もの可能なコードがありますが、そのうちの 6 つを合計して、10 未満かどうかを確認することに興味があります。
質問があります:
SELECT emp_id, sum(min) as time, SEC_TO_TIME(sum(min)*60) as time_formatted
FROM codes
WHERE code IN ('ALLEPD', 'ALLEUP', 'LATEBL', 'NCNS', 'UPAB', 'UUAB')
GROUP BY emp_id HAVING time < 10
このクエリは、従業員がこれら 6 つのコードのいずれも持っていない場合を除き、うまく機能します。その場合、それらは明らかに返されません。それが私の問題です: 時間が 0 で 10 未満であるため、それらを結果に含める必要があります。
さて、従業員は常に code を持っているTLPAID
ので、上記の 6 にそのコードを含める方法があるかどうか疑問に思っていました (従業員がクエリ結果に含まれる方法) が、それでもそれらの 6 を合計するだけですか?
望ましい結果:
emp_id | min
1234 | 0
4321 | 54
5555 | 10
これにどのようにアプローチすべきかについて何か考えはありますか?