1

さまざまな参加者が複数の日に複数の薬の箱を与えられるテーブルがあります。参加者に箱の数で配布された薬の量を示す頻度表を作成しようとしています。
ここに画像の説明を入力

私が探している結果は -

2 ボックス = 1 (Lynda だけが合計 2 ボックスを取得したため)、4 ボックス = 2 (Ryan と Rinky の両方が合計で 4 ボックスを取得したため)

この場合、どのようなアプローチが最適か教えてください。ご協力いただきありがとうございます。
-ナムズ

4

3 に答える 3

1

私はあなたが欲しいと思います:

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 はテーブルの名前です。

于 2012-08-29T21:08:30.473 に答える
0

テーブルが次のような場合:

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

動作するはずです

于 2012-08-29T21:25:52.363 に答える
0

汎用 SQL を使用します。SQL ビューの Access クエリに SQL を貼り付けることができます。(CHECK() 制約を削除する必要がある場合があります。)

create table participant_meds (
  participant varchar(10) not null,
  distribution_date date not null default current_date,
  num_boxes integer not null check (num_boxes > 0),
  primary key (participant, distribution_date)
);

insert into participant_meds values ('Ryan', '2012-02-03', 1);
insert into participant_meds values ('Ryan', '2012-06-07', 3);
insert into participant_meds values ('Rinky', '2012-02-28', 4);
insert into participant_meds values ('Lynda', '2012-03-04', 2);
insert into participant_meds values ('Russ', '2012-04-05', 2);
insert into participant_meds values ('Russ', '2012-05-08', 2);
insert into participant_meds values ('Russ', '2012-06-12', 2);

コピー/貼り付け用に並べ替えられた結果のデータ。

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 は歴史的に、ビューを使用するクエリの最適化に優れています。)

select boxes num_boxes, count(participant) num_participants
from (select sum(num_boxes) boxes, participant
      from participant_meds
      group by participant) total_boxes
group by num_boxes
order by num_boxes;

num_boxes  num_participants
--
2          1
4          2
6          1
于 2012-08-29T21:45:51.370 に答える