Ms access 访问:“;交叉表;非数字数据的查询效果
我正在使用Access 2007,需要帮助创建查询。如果这是疯狂的长,对不起!我认为细节越多,理解就越好。我不是程序员,我希望有人能帮我 我需要知道如何将非数字数据折叠/汇总/汇总到共享特征/值的单行中。我想要的是类似于交叉表查询的,因为我想要来自不同行的唯一单元格值,这些行沿着共享/公共值的一行旋转/显示在列中。然而,我的数据不是数字,它需要字母列标题,而交叉表禁止 数据:Ms access 访问:“;交叉表;非数字数据的查询效果,ms-access,ms-access-2007,crosstab,Ms Access,Ms Access 2007,Crosstab,我正在使用Access 2007,需要帮助创建查询。如果这是疯狂的长,对不起!我认为细节越多,理解就越好。我不是程序员,我希望有人能帮我 我需要知道如何将非数字数据折叠/汇总/汇总到共享特征/值的单行中。我想要的是类似于交叉表查询的,因为我想要来自不同行的唯一单元格值,这些行沿着共享/公共值的一行旋转/显示在列中。然而,我的数据不是数字,它需要字母列标题,而交叉表禁止 数据: Count(tbl_BadgeType.Badge_type_number) AS CountOfBadge_type_
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 Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 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
- 徽章代码24在三个地点制作:110、210和320(代表芝加哥、罗克福德和圣路易斯)
- 徽章代码B9在两个位置:110和280(芝加哥和皮奥里亚)
- 3个位置的徽章代码C1:200和210(印第安纳波利斯和罗克福德)
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 Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 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
Badge_type_number是用于标识每个Badge code位置使用组合的主键
结果:
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 Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 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
列标题是数字的,不能在交叉表中更改为位置名称,我想要“是”而不是“1”。(很明显,它们是1,因为它是交叉表中的一个计数函数,我真的不需要它…)
所需结果:
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 Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 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
问题/问题:
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 Code 110 200 210 280 320
24 1 1 1
B9 1 1
C1 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
这有意义吗?我要求太多了吗?我还有希望吗?:^) 好的,我可以建议一些部分解决方案(根据您的表的外观,可能会产生更干净的解决方案),以等待对我上面留下的评论的回应: 问题#1:从数字到文本 如果您有一个表可以将[Location_production]与字符串(如“Chicago”)匹配,则只需使用一个内部联接即可使“110”显示为“Chicago”。您尝试的查询的第三行将变成如下内容:
FROM tbl_BadgeType AS T INNER JOIN tbl_Locations AS L ON T.Location_production = L.ID
然后,您只需在L.LocationName或任何实际文本上进行交叉表
问题#2:“1”到“是”
一般来说,您可以交换一个vb iif表达式,将“1”改为“是”
您需要将查询顶行中的“Count()”更改为“Max()”或“Min()”,可能还需要进行其他更改,具体取决于数据的外观。好的,因此在等待对我上面留下的注释的响应时,我可以建议一些部分解决方案(可能会产生更干净的解决方案,具体取决于您的表的外观): 问题#1:从数字到文本 如果您有一个表可以将[Location_production]与字符串(如“Chicago”)匹配,则只需使用一个内部联接即可使“110”显示为“Chicago”。您尝试的查询的第三行将变成如下内容:
FROM tbl_BadgeType AS T INNER JOIN tbl_Locations AS L ON T.Location_production = L.ID
然后,您只需在L.LocationName或任何实际文本上进行交叉表
问题#2:“1”到“是”
一般来说,您可以交换一个vb iif表达式,将“1”改为“是”
您需要将查询顶行中的“Count()”更改为“Max()”或“Min()”,可能还需要进行其他更改,具体取决于数据的外观。Wow!我没想到这么快就能得到答复 以下是tbl_类型相关字段的结构和示例数据:
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
最后,生产站点编号和说明的来源列表位于列表\生产站点:
Production_site_number Production_site_description
110 Chicago IDC
120 Chicago CS
210 Springfield IDC
310 Champaign IDC
320 Champaign CS
哇!我没想到这么快就能得到答案 以下是tbl_类型相关字段的结构和示例数据:
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
最后,生产站点编号和说明的来源列表位于列表\生产站点:
Production_site_number Production_site_description
110 Chicago IDC
120 Chicago CS
210 Springfield IDC
310 Champaign IDC
320 Champaign CS
你可以发布一个tbl_BadgeType的结构示例,以及其中相关数据的简短示例吗?你的问题感觉可以解决,但在不知道源数据的情况下很难提出解决方案。谢谢!还有:是否有另一个表可以加入Badge_代码以获取“Chicago”、“Illinois”等等?你可以发布一个tbl_BadgeType的结构示例,以及其中相关数据的简短示例吗?你的问题感觉可以解决,但在不知道源数据的情况下很难提出解决方案。谢谢!还有:是否有另一个表可以加入Badge_代码以获取“芝加哥”、“伊利诺伊”等?