2017-07-20 20 views
0

以下のSQL文では、奇妙な問題が発生しています。ユーザーIDごとの結果グループとそのうちのいくつかは正しく表示されますが、そのうちの1つ(ユーザーID = 1)には「initial_average」に3が掛けられます。なぜ実際にはわからないのですか。ステートメント?明確でない場合は、「タスク」テーブルのフィールド「initial_avg」を合計し、ユーザーによって分割されます。これに関するいくつかの助けは非常に感謝しています。私はMySQLを使用しています。合計とグループの組み合わせによる内部結合by

SELECT sum(initial_avg) AS initial_average 
    , sum(initial_std) AS initial_standard_dev 
    , tasks.user 
    , hourly_rate 
FROM tasks 
INNER JOIN user_project 
    ON tasks.user=user_project.user 
    AND tasks.project=59 
    AND tasks.user=1 
GROUP BY tasks.user 
+0

は、あなたの質問を更新し、追加します適切なデータサンプル – scaisEdge

+0

別の "and"節を追加して解決しました(そして、user_project.project = 59) –

+0

はおそらくhourly_rateでグループ化する必要があります。内部結合を使用しているので、 'and tasks.project = -59 and tasks.user = 1'は実際には' where'節にあるはずです。 – xQbert

答えて

0

私は(それを試してみてください)あなたのクエリを最適化し、別の "と" 節(AND user_project.project = 59)

0

を追加することによってそれを解決:

SELECT SUM(initial_avg) AS initial_average, SUM(initial_std) AS initial_standard_dev, tasks.user, hourly_rate FROM tasks INNER JOIN user_project ON tasks.user = user_project.user AND tasks.project = User_project.project WHERE tasks.project = 59 AND tasks.user = 1 GROUP BY tasks.user, hourly_rate 
関連する問題