-1
ありがとうご意見ありがとうございました。別の角度から試してみます。mysqlの結合テーブル結合
これらの結果を生成するために、このクエリをどのように書き込むことができますか?上記のクエリから
CompID CompeteID Casting Fishing Total
1 1 265.89 425.56 691.45
1 9 212.31 84.76 285.92
1 7 0.00 285.92 285.92
1 8 0.00 44.52 44.52
ORDER BY Total DESC
SELECT cs.CompID, ic.CompeteID
, MAX(IF(cast.CastType_ID BETWEEN 6 AND 12, cast.Length, 0)) + SUM(IF(cast.CastType_ID < 6, 40 - (cast.Length * 2), 0)) AS 'Casting'
FROM `comp-setup` cs
INNER JOIN `input-competitor` ic
ON cs.CompID = ic.Comp_ID
LEFT JOIN `input-casting` cast
ON cast.Compete_ID = ic.CompeteID
GROUP BY ic.CompeteID
UNION ALL
SELECT cs.CompID, ic.CompeteID
, SUM((iw.Weight * ca.Factor) + '1') AS 'Fishing'
FROM `comp-setup` cs
INNER JOIN `input-competitor` ic
ON cs.CompID = ic.Comp_ID
LEFT JOIN `input-weighin` iw
ON iw.Compete_ID = ic.CompeteID
INNER JOIN `input-catchpoints` ca
ON ca.PointsCatchID = iw.PointsCatch_ID
GROUP BY ic.CompeteID
結果、私は別のデータにブレイクラインと釣りヘッダを追加しました。
CompID CompeteID Casting
1 1 265.89
1 7 0
1 8 0
1 9 212.31
----------------------------------
Fishing
1 1 425.56
1 7 285.92
1 8 44.52
1 9 84.76
は、私たちはあなたのためにそれを追加することができますコメントに画像リンクを追加します。 –
'CompeteID'だけで集約している間に非集約カラムを選択しているので、' GROUP BY'を間違って使用しています。いくつかのサンプルデータは素晴らしいかもしれませんし、またあなたの質問を最小限の例に減らすことができれば助けになるでしょう。 –
総計合計:https://i.stack.imgur.com/6wxxv.png –