とりあえずreact-bootstrapのListGroup.itemを使って日付の一覧を入れ子で実装。アコーディオン化したいが時間ないので仮置き。
UIは練らないといけないが日付→日付別試合一覧への導線は完成。
1日に3-5イニングの試合を3-5試合行うので日別の試合結果一覧ページを実装。投手成績とHRの本数を取得する処理が割と面倒で、試合直前までの成績を取得した後にその試合での成績を合算する処理をしないといけない。HR本数の取得処理は旧システムでも行っていたのでSQLをそのまま移植できると思っていたが、
その日までに成績がなく、その日の一番最初の試合に1号HRを打つとSQLで取得できないバグがあることに気づいた。
修正後のSQL
select
h.player_id,
name,
homerun,
before_homerun_count
from
(SELECT
b.player_id,
name,
homerun
FROM batting_sum b
inner join player p on p.id = b.player_id
WHERE b.game_id= ? and b.homerun>=1
group by player_id) h
left outer join (
select
b.player_id,
sum(homerun) as before_homerun_count
from batting_sum b
inner join game g on g.game_id=b.game_id
where
((game_date>= ? and game_date< ?)
or (game_date= ? and game_number<= ? ))
group by player_id) sum_homerun
on h.player_id = sum_homerun.player_id
あとはSQLの引数を渡す順番を間違えていて2時間ぐらい結果が取得できなくて嵌ってしまった。。