-- Returns one row per tournament with all natural keys needed for Oracle DIM lookups. -- winner_org_id is NULL when the winner is an individual (Chess, StarCraft II, etc.) SELECT t.game_id, CAST(DATE_FORMAT(t.start_date, '%Y%m%d') AS UNSIGNED) AS start_date_key, CAST(DATE_FORMAT(t.end_date, '%Y%m%d') AS UNSIGNED) AS end_date_key, o.organization_id AS winner_org_id, t.event_name, t.gender, t.prize_pool_usd, t.num_participants, COALESCE(s.duration_days, DATEDIFF(t.end_date, t.start_date) + 1) AS duration_days, CASE WHEN t.club_championship_points = 1 THEN 1 ELSE 0 END AS has_club_points FROM tournament t LEFT JOIN schedule s ON t.tournament_id = s.tournament_id LEFT JOIN organization o ON o.name = t.winner;