Your database structure doesn't look to have the flexibility to do this easyily. Try this:
table teams (id int primary key, name varchar(30));
table matchups (id int primary key, ref_hometeam int, ref_awayteam int, week int);
table users (id int primary key, name varchar(30));
table userpicks (ref_user int, ref_matchup int, ref_winningteam int / foreign key to teams.id/)
select count(userpicks.ref_user), name from userpicks, matchups, users where matchups.id = userpicks.ref_matchup and users.id = userpicks.ref_user and
ref_winningteam in (/list of winning team ids/) and matchups.week = 3 group by ref_user order by users.name
voila