2013-10-04 52 views
0

我有一个Access类中的750个类别的部分列表,然后是按部分在类别中的学生数量的计数。看起来像这样,凌晨1点是指营地的第一周,上午是午间会议,下午是下午。将行转换为Access中的列

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)。但是,我不确定是否在执行此操作后,如果可以通过查询使用组来查看最终输出,那么我正在寻找这一点。

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

+0

使用转机制 http://stackoverflow.com/questions/12602858/transpose-rows-into-columns-in-another-table-using-ms-access-2007 http://stackoverflow.com/questions/10210512/transpose-a-table-using-query-in-access http://stackoverflow.com/questions/736317/sql-to-transpose-row-对到列 - 在毫秒访问数据库 –

回答

0

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

如果你已经有你的“名称”列在NameTime列分裂(通过使用Left()Len())功能,您可以在数据透视表轻松地将这样的:

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

检查联机帮助transform(我发现this,但Access的在线帮助可以为您提供更好的解释)。

希望这可以帮助你。