Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 对联合表进行分组和联接。有问题_Vb.net_Ms Access_Group By_Union_Jointable - Fatal编程技术网

Vb.net 对联合表进行分组和联接。有问题

Vb.net 对联合表进行分组和联接。有问题,vb.net,ms-access,group-by,union,jointable,Vb.net,Ms Access,Group By,Union,Jointable,前几天我问了一个问题,得到了一些非常有用的信息,这些信息帮助我走到了这一步。但是,我现在在使用UNION/GROUP BY从表中获取数据时遇到了问题 下面的代码是我尝试过的。但我似乎找不到一个办法让它一组一组的球员 它是这样显示的 Jono - 3 - 1 Jono - 1 - 1 当我需要这样表现的时候 Jono - 4 - 1 我才刚刚开始,所以如果有更好的方法来执行此代码,请告诉我:) 我的数据库布局是: tblPlayers (ID,FirstName,LastName,Displ

前几天我问了一个问题,得到了一些非常有用的信息,这些信息帮助我走到了这一步。但是,我现在在使用UNION/GROUP BY从表中获取数据时遇到了问题

下面的代码是我尝试过的。但我似乎找不到一个办法让它一组一组的球员

它是这样显示的

Jono - 3 - 1
Jono - 1 - 1
当我需要这样表现的时候

Jono - 4 - 1 
我才刚刚开始,所以如果有更好的方法来执行此代码,请告诉我:)

我的数据库布局是:

tblPlayers (ID,FirstName,LastName,DisplayName,Handicap,Current)  
tblSeason  (ID,Season)  
tblMatch   (ID,MatchDate,Season,Player1,Player2,Player1Score,Player2Score,Winner)  
我真正想做的是显示一个列表,其中玩家的名字可以来自Player1或Player2列,计算这个玩家玩的游戏数量,并从这些游戏中计算他们赢得游戏的次数


谢谢

您是否可以在外部查询中添加另一个分组:

SELECT [InnerQueryAlias].[Player], Sum([InnerQueryAlias].[Played]) AS SumOfPlayed, Sum([InnerQueryAlias].[Games Won]) AS [SumOfGames 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)  AS [InnerQueryAlias]
GROUP BY [InnerQueryAlias].[Player];
SELECT [InnerQueryAlias].[Player], Sum([InnerQueryAlias].[Played]) AS SumOfPlayed, Sum([InnerQueryAlias].[Games Won]) AS [SumOfGames 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)  AS [InnerQueryAlias]
GROUP BY [InnerQueryAlias].[Player];