Sql 在Access中使用SELECT DISTINCT、SELECT COUNT和UPDATE计数事件

Sql 在Access中使用SELECT DISTINCT、SELECT COUNT和UPDATE计数事件,sql,ms-access,Sql,Ms Access,在Access中,我有这样一个表: Date | EmployeeNum | Award 11-JAN-08 | 34 | GoldStar 13-JAN-08 | 875 | BronzeTrophy 13-JAN-08 | 34 | BronzeTrophy 18-JAN-08 | 875 | BronzeTrophy 我想让一张桌子像这样数一数: EmployeeNum | GoldStar | BronzeT

在Access中,我有这样一个表:

Date      | EmployeeNum | Award
11-JAN-08 | 34          | GoldStar
13-JAN-08 | 875         | BronzeTrophy
13-JAN-08 | 34          | BronzeTrophy
18-JAN-08 | 875         | BronzeTrophy
我想让一张桌子像这样数一数:

EmployeeNum | GoldStar | BronzeTrophy
34          |    1     |      1
875         |    0     |      2
我希望能够通过运行查询或类似操作来生成此表。我已经试着把它放到一个查询中,但我不确定我是否做对了。我尝试过使用UPDATE和SET=SELECT COUNT,但没有太多成功

我该怎么做?我应该这样尝试吗?

您需要一个交叉表(也称为pivot)查询。尝试以下SQL并进行修改以满足您的需要:

TRANSFORM Count(MyTable.EmployeeNum) AS AantalVanEmployeeNum
SELECT MyTable.EmployeeNum
FROM MyTable
GROUP BY MyTable.EmployeeNum
PIVOT MyTable.Award;

在Access中,请尝试“/View/Pivot Table View”。

我将使用以下查询获取您的总计:

SELECT EmployeeNum, 
       SUM(Case [Award] WHEN 'GoldStar' THEN 1 ELSE 0 END) As [GoldStar], 
       SUM(CASE [Award] WHEN 'BronzeTrophy' THEN 1 ELSE 0 END) As [BronzeTrophy]
FROM MyTable
Group By EmployeeNum