SQL だけでこれを達成できるのか、それとも PHP を使用する必要があるのか疑問に思っています。
(ゴルフ) データベースには、roundsテーブルとテーブルがありholesます。 rounds.idラウンドのホールレコードに保存されます。
holesテーブルには (他の多くのフィールドの中でも) firstPutt、secondPutt、 がありthirdPuttます。これらは距離を格納する float で、デフォルトはゼロです。
私の雇用主がやりたいことは、そのラウンドのすべてのホールで行われた最後のパットの長さのラウンドの合計をラウンド テーブルに保存することです。
puttsこれを参照するテーブルがあればholes.id、より良い構造になると思いますが、現時点ではそれは不可能です。
したがって、疑似SQLでの更新は次のようになります
UPDATE holes h, rounds r
SET r.sumOfLastPutts = (
SELECT thirdPutt if thirdPutt is not 0
OR secondPutt if secondPutt is not zero AND thirdPutt is zero
OR firstPutt if firstPutt is not zero AND secondPutt is zero)
) WHERE h.round = rounds.id
SQLだけを使用してそれは可能ですか?
この例では、ラウンドの数は 145 で、赤いボックス内の数の合計です。

マーティン・パーキンの答えから外れると、次のように 1 ラウンドの合計を得ることができます。
SELECT
SUM(
CASE
WHEN h.thirdPutt != 0 THEN h.thirdPutt
WHEN h.secondPutt != 0 THEN h.secondPutt
WHEN h.firstPutt != 0 THEN h.firstPutt
END
)
FROM holes h
WHERE h.round = 3044