Ms access 在Access VBA中创建频率表

Ms access 在Access VBA中创建频率表,ms-access,vba,Ms Access,Vba,我有一张桌子,不同的参与者在几天内得到多盒药物。我正在尝试创建一个频率表,显示按照盒子数量向参与者分发了多少药物。 我想要的结果是- 2盒=1(因为只有琳达得到了总共2盒),4盒=2(因为Ryan和Rinky加上药盒后总共得到了4盒) 请让我知道在这种情况下什么方法是最好的。 谢谢你的帮助。 -我想你想要: SELECT t.SumOf, Count(t.[PARTICIPANT ID]) AS CountOf FROM (SELECT Table1.[PARTICIPANT ID], Sum

我有一张桌子,不同的参与者在几天内得到多盒药物。我正在尝试创建一个频率表,显示按照盒子数量向参与者分发了多少药物。

我想要的结果是-

2盒=1(因为只有琳达得到了总共2盒),4盒=2(因为Ryan和Rinky加上药盒后总共得到了4盒)

请让我知道在这种情况下什么方法是最好的。 谢谢你的帮助。
-我想你想要:

SELECT t.SumOf, Count(t.[PARTICIPANT ID]) AS CountOf
FROM (SELECT Table1.[PARTICIPANT ID], Sum(Table1.MEDICINE_BOX) AS SumOf
FROM Table1
GROUP BY Table1.[PARTICIPANT ID])  AS t
GROUP BY t.SumOf;
其中table1是您的表名。

我想您需要:

SELECT t.SumOf, Count(t.[PARTICIPANT ID]) AS CountOf
FROM (SELECT Table1.[PARTICIPANT ID], Sum(Table1.MEDICINE_BOX) AS SumOf
FROM Table1
GROUP BY Table1.[PARTICIPANT ID])  AS t
GROUP BY t.SumOf;

其中table1是您的表名。

如果您的表是这样的:

medicine_dispense
participantID   date    amount_boxes
ABC             8/29/12  1
ABC             8/30/12  2
XYZ             8/29/12  1
XYZ             8/30/12  1
select
amount_boxes, count(participantID)
from
medicine_dispense
然后是这样的查询:

medicine_dispense
participantID   date    amount_boxes
ABC             8/29/12  1
ABC             8/30/12  2
XYZ             8/29/12  1
XYZ             8/30/12  1
select
amount_boxes, count(participantID)
from
medicine_dispense

如果您的桌子是这样的,则应该可以使用:

medicine_dispense
participantID   date    amount_boxes
ABC             8/29/12  1
ABC             8/30/12  2
XYZ             8/29/12  1
XYZ             8/30/12  1
select
amount_boxes, count(participantID)
from
medicine_dispense
然后是这样的查询:

medicine_dispense
participantID   date    amount_boxes
ABC             8/29/12  1
ABC             8/30/12  2
XYZ             8/29/12  1
XYZ             8/30/12  1
select
amount_boxes, count(participantID)
from
medicine_dispense

应该可以用了

我将使用通用SQL。可以将SQL粘贴到SQL视图中的Access查询中。(可能必须删除CHECK()约束。)

用于复制/粘贴的已排序结果数据

participant distribution_date   num_boxes
Lynda   2012-03-04  2
Rinky   2012-02-28  4
Russ     2012-04-05 2
Russ     2012-05-08 2
Russ     2012-06-12 2
Ryan     2012-02-03 1
Ryan     2012-06-07 3
此查询为您提供每个参与者的箱子总数

select sum(num_boxes) boxes, participant
from participant_meds
group by participant;

6;"Russ"
2;"Lynda"
4;"Ryan"
4;"Rinky"
在FROM子句中使用该查询,就像它是一个表一样。(我会考虑将查询存储为一个视图,因为我怀疑每个参与者的盒子总数可能是有用的。而且,Access在历史上很擅长优化使用视图的查询。)
我将使用通用SQL。可以将SQL粘贴到SQL视图中的Access查询中。(可能必须删除CHECK()约束。)

用于复制/粘贴的已排序结果数据

participant distribution_date   num_boxes
Lynda   2012-03-04  2
Rinky   2012-02-28  4
Russ     2012-04-05 2
Russ     2012-05-08 2
Russ     2012-06-12 2
Ryan     2012-02-03 1
Ryan     2012-06-07 3
此查询为您提供每个参与者的箱子总数

select sum(num_boxes) boxes, participant
from participant_meds
group by participant;

6;"Russ"
2;"Lynda"
4;"Ryan"
4;"Rinky"
在FROM子句中使用该查询,就像它是一个表一样。(我会考虑将查询存储为一个视图,因为我怀疑每个参与者的盒子总数可能是有用的。而且,Access在历史上很擅长优化使用视图的查询。)

我不明白你的要求。没有参与者得到4个盒子;“4”来自哪里?请使用表格,而不是口头描述表格。当你说“4箱=1”时,你的意思是“1箱=3”,还是说1箱药发了3次,今天1箱给ABC,今天1箱给XYZ,明天1箱给XYZ?编辑了问题,并添加了表格。希望这能说明问题。请不要发布图像,实际数据更有用,因为它可以用于测试。我不能发布实际数据,因为它包含一些敏感信息,但是,这与表中的人口统计数据非常相似。抱歉搞混了。我不明白你的要求。没有参与者得到4个盒子;“4”来自哪里?请使用表格,而不是口头描述表格。当你说“4箱=1”时,你的意思是“1箱=3”,还是说1箱药发了3次,今天1箱给ABC,今天1箱给XYZ,明天1箱给XYZ?编辑了问题,并添加了表格。希望这能说明问题。请不要发布图像,实际数据更有用,因为它可以用于测试。我不能发布实际数据,因为它包含一些敏感信息,但是,这与表中的人口统计数据非常相似。抱歉造成混淆。编辑问题以包含表格和我要查找的结果。这是我认为您想要的,我相信这就是我的查询提供的。编辑问题以包含表格,还有我要找的结果。这就是我认为你想要的,我相信这就是我的查询提供的。编辑问题以包含一个表,以及我要查找的结果。编辑问题以包含一个表,以及我要查找的结果。这需要大量的剪切和粘贴。Access一次只运行一条语句。OP可能已经有数据,只需要查询。我只是让其他人更容易回答。不是在MS Access中。您可以在一个数据块中直接将数据剪切粘贴到MS Access表中,上述操作至少需要8次剪切粘贴并运行查询。@Remou:我粘贴的数据可以复制/粘贴到Access中吗?如果不是,哪种格式更好?CSV?生成的数据对我来说很有用,因为我有一个小程序,但是对于直接剪切并粘贴到表中,需要字段名和选项卡,尽管这取决于版本。这需要大量的剪切和粘贴。Access一次只运行一条语句。OP可能已经有数据,只需要查询。我只是让其他人更容易回答。不是在MS Access中。您可以在一个数据块中直接将数据剪切粘贴到MS Access表中,上述操作至少需要8次剪切粘贴并运行查询。@Remou:我粘贴的数据可以复制/粘贴到Access中吗?如果不是,哪种格式更好?CSV?生成的数据对我来说很有用,因为我有一个小程序,但是要直接剪切并粘贴到表中,需要字段名和选项卡,尽管这取决于版本。