別の列の値がthis / thatである場合に基づいて、列の合計が必要です。これが私のテーブル構造です
id leave_hours leave_type overtime_hours employee_id
1 7.6 1 0 3
2 5 2 0 3
3 0 0 2.3 3
このクエリはすでにありますが、休暇の種類が1で、休暇の種類が2の場合にのみ合計される列が必要です。
SELECT employee_id, SUM(overtime_hours) AS ot_hrs, SUM(leave_hours if leave_type == 1) AS
leave_1, SUM(leave_hours if leave_type == 2) AS leave_2
FROM table
GROUP BY employee_id
結果は次のようになります。
employee_id ot_hrs leave_1 leave_2
3 2.3 7.6 5
ご入力いただきありがとうございます。
条件付き集計を使用して、異なるものをleave_hours
個別に合計する必要があります。
SELECT employee_id,
SUM(overtime_hours) AS ot,
SUM(CASE WHEN leave_type = 1 THEN leave_hours ELSE 0 END) AS leave_1,
SUM(CASE WHEN leave_type = 2 THEN leave_hours ELSE 0 END) AS leave_2
FROM `table`
GROUP BY employee_id
出力:
employee_id ot leave_1 leave_2
3 2.3 7.6 5
浮動小数点数を使用して時間を格納する場合はROUND
、結果が必要になる場合があることに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加