8

小グループで生徒を教える家庭教師を示す次の表があります。各生徒はデータベースへのエントリを持っています。生徒は一人でもグループでも構いません。私は家庭教師の「給与」をそのまま計算したいと思います。支払いは費やされた時間に基づいています。これは、各シッティング(1 人または複数の生徒)に対して 1 つのシッティングのみが計算されることを意味します。開始時間と終了時間は UNIX 時間です。

<pre>
    start   end     attendance
1359882000  1359882090  1
1359867600  1359867690  0
1359867600  1359867690  1
1359867600  1359867690  0
1360472400  1360477800  1
1360472400  1360477800  1
1359867600  1359867690  1
1359914400  1359919800  1
1360000800  1360006200  1
1360000800  1360006200  0
1360000800  1360006200  1

</pre>

これは私が試したものです:成功しませんでした-適切な期間を取得できません(すべての異なるシッティングの時間数)

    SELECT YEAR(FROM_UNIXTIME(start)) AS 年、
    MONTHNAME(STR_TO_DATE(MONTH(FROM_UNIXTIME(start)), '%m')) AS 月、
    COUNT(DISTINCT start) AS シッティング、
    SUM(TRUNCATE((end-start)/3600, 1)) as duration
    FROM スケジュール
    グループ化
    YEAR(FROM_UNIXTIME(開始)),
    MONTH(FROM_UNIXTIME(開始))
    

あなたの提案/サポートに感謝します!

編集:必要な結果

Rate = 25
Year    Month   Sittings    Duration    Bounty
2013    February     2         2.2          2.2*25
2013    April        4         12.0         12.0*25
4

1 に答える 1