SQL Access"伯爵"?

时间:2016-03-24 21:32:50

标签: sql ms-access

table

Name  tap
aa     1
aa     1
aa     2
bb     2
aa     3
cc     1
bb     2
bb     3
cc     2

结果?????

name  Count(1)   Count(2)   Count(3)
aa      2           1          1
bb      0           2          1
cc      1           1          0

??????

1 个答案:

答案 0 :(得分:0)

你不能使用 Count ,因为它会这样做 - 计算每个名称的记录数量,忽略点击的值

但是你检查 tap 的值并总结这些匹配。但是,当 SQL Server 为匹配返回1时, Access 返回-1,因此 - 对于通用解决方案 - 您可以将 Abs 始终应用于有一个正数。

然后你得到一个这样的查询:

Select
    [Name],
    Abs(Sum(tap=1)) As Count1,
    Abs(Sum(tap=2)) As Count2,
    Abs(Sum(tap=3)) As Count3
From
    YourTable
Group By
    [Name]

输出将是:

Name  Count1  Count2  Count3
aa         2       1       1
bb         0       2       1
cc         1       1       0