На днях я задал вопрос и получил очень полезную информацию, которая помогла мне зайти так далеко. Однако теперь у меня проблемы с получением данных из таблиц с помощью UNION/GROUP BY.
Следующий код - это то, что я пробовал. Но я не могу найти способ сгруппировать его по Player.
Показывается вот так.
Jono - 3 - 1
Jono - 1 - 1
Когда мне нужно показать вот так
Jono - 4 - 1
Я только начинаю, поэтому, если есть лучший способ выполнить этот код, скажите мне :)
SELECT [Player],[Played],[Games Won] FROM
(SELECT
p1.displayname AS [Player],
COUNT(p1.displayname) AS [Played],
SUM(IIF(m.player2=m.winner, 1, 0)) AS [Games Won]
FROM ((tblMatch m)
INNER JOIN tblPlayers p1 ON m.player2=p1.id)
WHERE m.season = 3
GROUP BY p1.displayname
UNION ALL
SELECT
p2.displayname AS [Player2],
COUNT(p2.displayname) AS [Played],
SUM(IIF(m.player1=m.winner, 1, 0)) AS [Games Won]
FROM ((tblMatch m)
INNER JOIN tblPlayers p2 ON m.player1=p2.id)
WHERE m.season = 3
GROUP BY p2.displayname)
Мой макет базы данных:
tblPlayers (ID,FirstName,LastName,DisplayName,Handicap,Current)
tblSeason (ID,Season)
tblMatch (ID,MatchDate,Season,Player1,Player2,Player1Score,Player2Score,Winner)
И что я действительно хотел бы сделать, так это показать список, в котором имя игрока может быть взято из столбца Player1 или Player2, и подсчитать количество игр, сыгранных этим игроком, и из этих игр подсчитать, сколько раз они выиграли игру.
Спасибо