0

それを正しく理解しましょう。

これにより、正しい結果が返されます。

SELECT sum(w.weight * w.repetitions)
FROM workout_exercise_logs w
JOIN workout_logs wo ON `w`.`workoutLogID`=`wo`.`workoutLogID`
JOIN workouts wor ON `wo`.`workoutID`=`wor`.`workoutID`
WHERE w.weightType=1 and `wor`.`userID`=34

しかし、を追加すると、次の結果+ w.weight * w.seconds / 3が得られます。NULL

SELECT sum(w.weight * w.repetitions + w.weight * w.seconds / 3)
FROM workout_exercise_logs w
JOIN workout_logs wo ON `w`.`workoutLogID`=`wo`.`workoutLogID`
JOIN workouts wor ON `wo`.`workoutID`=`wor`.`workoutID`
WHERE w.weightType=1 and `wor`.`userID`=34

式の何が問題になっていますか?どうすれば修正できますか?ありがとう!

4

1 に答える 1

2

質問ですが、このフィールドをnull許容にする必要がありますか(またはそのことについては任意のフィールド):秒?

それが要件である場合は、これらのnull許容フィールドをゼロに合体させる必要があります。

SELECT sum(
      w.weight * w.repetitions 
      + w.weight * coalesce(w.seconds,0) / 3)
FROM workout_exercise_logs w
JOIN workout_logs wo ON `w`.`workoutLogID`=`wo`.`workoutLogID`
JOIN workouts wor ON `wo`.`workoutID`=`wor`.`workoutID`
WHERE w.weightType=1 and `wor`.`userID`=34
于 2012-05-16T02:01:37.283 に答える