Jadi apa yang saya lihat di sini sedikit kontradiktif karena inning tidak benar-benar atribut game, kecuali secara tidak langsung. Tapi mungkin itu hanya aku. Saya pribadi akan menyarankan sesuatu yang lebih seperti tabel RunsScored, dan minta tautan balik ke meja GamesHeader, dari beberapa jenis, jadi pertimbangkan:
CREATE TABLE GamesHeader (
GameID INT IDENTITY(1,1),
HomeTeamID INT, --FK to teams table, naturally
AwayTeamID INT, --FK to teams table, naturally
FinalInningsCount BYTE, -- for faster reporting after the game is over
FinalHomeScore BYTE, -- for faster reporting after the game is over
FinalAwayScore BYTE, -- for faster reporting after the game is over
--Other attribs
)
CREATE TABLE RunsScored (
RunsScoredID BIGINT IDENTITY(1,1), -- for faster reverse traversal, possibly. May not be needed, this depends on your setup, as the normalization will show a composite key anyways
PlayerID INT, --FK to players table naturally
GameID INT, --FK to GamesHeader table naturally
Inning BYTE, --wait for the payoff
RunsEarned, --because you may want to track this by the player ... really the problem is that there's not a single naturalized setup for this, so you may be intersecting this table to another stats table elsewhere. idk, it depends on your model. I'm going for fairly simplistic atm. Wanted to demonstrate something else entirely, but this needs to be accounted for.
-- other attribs
)
SELECT MAX(r.Inning) FROM RunsScored r JOIN GamesHeader g ON g.GameID = r.GameID WHERE GameID = 'x'
Itu akan memberi Anda Inning maksimum yang dimainkan untuk gim tertentu, dan Anda dapat lebih menyempurnakan oleh PlayerID -> TeamID untuk mengetahui detail lebih lanjut jika Anda menginginkannya. Apa itu mungkin saya tidak yakin.
Saya mungkin akan benar-benar memperbaiki tabel kedua agar tidak menjadi RunsScored tetapi sesuatu tentang AtBat karena itulah yang sebenarnya sedang Anda lacak. Saya hanya ingin menunjukkan bagaimana Anda bisa mendenormalisasi inning jauh dari meja permainan. Saya akan mengubah model saya mengalir seperti itu, apakah ini proyek saya. HTH. YMMV.
Perhatikan juga bahwa saya adalah seorang pria TSQL, tapi saya pikir konsep yang diungkapkan di bawah ini bekerja cukup baik untuk menjelaskan konsep saya. Semantik bahasa mungkin tidak akan berbaris.