我正在使用Access 2007,需要帮助创建查询。如果这很疯狂,抱歉!我认为更多的细节更好理解。我不是程序员 - 我希望有人会帮助。
我需要知道如何将非数字数据折叠/汇总/汇总到一个共享特征/值的行中。我想要的是喜欢交叉表查询,因为我希望来自不同行的唯一单元格值在该行的共享/公共值的一行中以透视/显示方式显示。但是,我的数据不是数字,它需要alpha列标题,交叉表禁止使用。
数据:
每个badge_code-location组合位于一个单独的行中,共8行。 徽章代码的数量可以/将会增长。
我试过的问题:
Count(tbl_BadgeType.Badge_type_number) AS CountOfBadge_type_number
SELECT tbl_BadgeType.Badge_code
FROM tbl_BadgeType
GROUP BY tbl_BadgeType.Badge_code
PIVOT tbl_BadgeType.Location_production;
Badge_type_number是用于标识每个徽章代码位置使用组合的主键。
结果:
Badge Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 1 1
列标题是数字,不能更改为交叉表中的位置名称,我想要“是”而不是“1”。 (显然,它们是1,因为它是交叉表中的计数函数,我真的不需要......)
期望的结果:
Badge Code Chicago Indianapolis Rockford Peoria St. Louis
24 Yes No Yes No Yes
B9 Yes No No Yes No
C1 No Yes Yes No No
问题/问题:
这有意义吗?我问得太多了吗?对我有希望吗? :^)
答案 0 :(得分:1)
哇!我这么快就没想到答案了。
以下是tbl_BadgeTypes的相关字段的结构和示例数据:
Badge_code Badge_description(both are Text fields)
01 Faculty/staff
04 College of Law
62 Student-Peoria
86 Visitor
B7 Police
徽章代码实际使用的位置在tbl_TokenInstance中(每个令牌实例的行 - 徽章,ID等。徽章代码可能由不同的位置使用;它们不是独占的。相关数据是:
Instance_number(autonumber) Prod_site_num(Integer) Badge_code(text)
1 110 B7
3 110 B7
4 110 B7
27 310 04
15 210 62
21 110 62
16 110 01
22 210 01
25 310 01
31 110 86
32 120 86
最后,生产站点编号和描述的源列表在list_ProductionSite:
中 Production_site_number Production_site_description
110 Chicago IDC
120 Chicago CS
210 Springfield IDC
310 Champaign IDC
320 Champaign CS
答案 1 :(得分:0)
好的,对我上面留下的评论的待定回复,我可以建议一些部分解决方案(可能会产生更清晰的解决方案,具体取决于你的表格):
问题#1:数字到文字
如果你有一个可以将[Location_production]匹配到像“芝加哥”这样的字符串的表,那么你需要使用内连接使'110'显示为“芝加哥”。您尝试的查询的第三行将变为类似:
FROM tbl_BadgeType AS T INNER JOIN tbl_Locations AS L ON T.Location_production = L.ID
然后你就可以在L.LocationName或任何实际文本上交叉。
问题#2:“1”到“是”
一般来说,您可以将vb iif表达式替换为将“1”更改为“是”s
ProducesHere: iif([Badge_type_number]>0, "Yes","No")
您需要在查询的第一行中将“Count()”更改为“Max()”或“Min()”以及可能的其他更改,具体取决于您的数据。