将行转换为Access中的列

时间:2013-10-04 16:57:54

标签: sql ms-access

我在Access中列出了750个课程,然后是按课程分类的学生人数。它看起来像上午1点指的是营地的第1周,上午是上午,下午是下午。

Name                Count
Babysitting - 1am     5
Babysitting - 1PM     7
Arts & Crafts - 1am   9
Arts & Crafts - 1am   6
...

我需要通过会话来构建每个类。像这样:

Name          Week1am    Week1PM
Babysitting      5         7
Arts & Crafts    9         6

我将周和时间代码作为类表中的单独字段,但我需要它们在类表的每个类的名称中显示另一个原因。我知道如何从这个查询的名称中删除最后5个字符。我用过:Left ([Name], Len([Name])-5)。但是,我不确定在我这样做之后是否可以使用按查询分组来获得我正在寻找的最终输出。

如果有人可以提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:0)

这是Access中透视表的基本应用。

如果您已在NameTime列(使用Left()Len())功能中拆分了“名称”列,则可以轻松地将其转换为数据透视表:

transform sum([count]) as totalCount
select [name]
from [yourTableOrQuery]
group by [name]
pivot [time]

查看transform的在线帮助(我找到this,但也许Access的在线帮助可以为您提供更好的解释。)

希望这会对你有所帮助。