- pqxx::result res( t.exec(
- "SELECT player,"
- " ("
- " SELECT feetrating"
- " FROM songratings"
- " WHERE machine=( SELECT machine FROM tournaments WHERE tournament=" + pqxx::to_string(tournament) + " ) " // only find songs on the machine we use
- " AND song NOT IN (" // not a song that has been in elimination or seeding
- " SELECT song FROM scores "
- " WHERE tournament=" + pqxx::to_string(tournament) +
- " AND song IS NOT NULL"
- " AND parallel=0"
- " )"
- " AND (player,song) NOT IN (" // not a song the player has chosen before, or is a random song in this round
- " SELECT player,song FROM scores"
- " WHERE tournament=" + pqxx::to_string(tournament) +
- " AND song IS NOT NULL" +
- " AND ( chosen='t' OR round=" + pqxx::to_string(round) + " )"
- " )"
- " ORDER BY feetrating DESC LIMIT 1"
- " ) * 1000 AS max_score FROM tournamentparticipation") );
+ pqxx::result res( t.exec("SELECT * FROM get_max_score_for_players("
+ + pqxx::to_string(tournament) + ", " + pqxx::to_string(round) +
+ ", 'single')") );