私は製造会社のOLです。Windows2000/Access2000で課内の一月毎の工数表を作っています。テーブルは[日付(年/月/日)]、[取引先]、[製品名]、[担当者]、[工数(時間)]のフィールドからなっています。レポートで、一つの製品を制作するのに何名が携わっているかを計算させたいのですが、製品名フッターにて「=Count([担当者])」にすると、3日同じ人が同じ製品を製作したとしたら、「3名」となってしまします。それを「1名」と計算させるには、どうすればよいのでしょうか?どうか教えて下さい。
No.2
- 回答日時:
SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
のようなクエリを作っておいて、
レポートから、
=DCount("担当者","クエリ1")
みたいな感じで呼び出せば出来ます。
不明点とかあれば、補足してください。
この回答への補足
回答有難うございます。ACCESS初心者なので、
SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
が、よくわからないのです。
クエリにいれる式でしょうか?ごめんなさい。(自分がバカに思えてきた。)
申し訳ないのですが、詳しく説明願えないでしょうか?
よろしくお願いいたします。
No.3
- 回答日時:
私もまだ経験が浅いので偉そうな事言ってもし間違っていたら申し訳ないのですが・・・。
SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
というのはSQL文です。
クエリーを作成する時ってたいていはデザインビューで作成すると思うんですが、SQL文で、このようにSELECT文を書く事もできるんです。左上のほうに、「デザインビュー」「SQL」とかいうボタンがないでしょうか?
それで、切り替えが可能です。
ですから、これのSELECT文をSQL表示にして記述し、デザインビューで見ることもできますよ。
クエリーというのは、テーブルのデータを加工するものです。
ですから、使えるようになると本当に便利です。
このSELECT文の意味は「工程表テーブル」の「担当者」というフィールドを「担当者」でグループ化するということです。
SELECT [担当者] ← で抽出するフィールドを指定しています。
FROM 工程表テーブル ← は抽出もとのテーブルです。
GROUP BY [担当者] ← は抽出の条件を指定しています。”GROUP BY ”と言うのはグループ化で、こうすると担当者のフィールドには同じ名前が表示される事はなくなります。担当者が同じものをひとまとめにしてしまったということです。
GROUP BYのほかにもいろいろと抽出条件を指定する方法がありますが・・・
こんな説明で果たしてどのくらい伝わったか分かりませんが・・・・
もし間違っているところなどがありましたらどなたかよろしくお願いします。
この回答への補足
SQLボタン、ありました!今までデザインビューからしかクエリは作ったことがなかったので、これで解明しました。
しかしそれだと、製品名全部ひっくるめての担当者をグループ化してしまうのです。製品ごとに担当者数を出したいのです。今、出そうとしているレポートは以下のクエリからなっています。
(テーブルは週報、取引先コード、部品コードと3つをリレーションしてます。)
SELECT 週報.日付, 週報.担当者, 取引先コード.コード, 週報.取引先, 週報.製品名, 部品番号コード.部品名, 週報.[工数(H)], Year([日付]) AS 年, Month([日付]) AS 月
FROM 部品番号コード INNER JOIN (週報 INNER JOIN 取引先コード ON 週報.取引先 = 取引先コード.取引先) ON 部品番号コード.コード = 週報.部品コード
WHERE (((Year([日付]))=[YEAR(西暦)半角で入力してください]) AND ((Month([日付]))=[MONTH 半角で入力してください]))
ORDER BY 取引先コード.コード;
上記で理解されることを願いますが、これに
SELECT [担当者] FROM 週報 GROUP BY [担当者];
を追加すると、構文エラーがでてしまいます。 なので、デザインビューで担当者のところをグループ化してみると、全部のフィールドがグループ化されてしまいうまくいきません。勉強不足で大変申し訳ないのですが、どうすればよいかを教えていただけませんか?よろしくお願い申しあげます。
No.4
- 回答日時:
>回答有難うございます。
ACCESS初心者なので、SELECT [担当者] FROM 工程表テーブル GROUP BY [担当者];
これについては、先にmarmi1516さんが答えてくださいました。m(_ _)m 感謝!
#3の答えで完璧かと思いますが、まだ不足でしたら補足をお願いします。
>ごめんなさい。(自分がバカに思えてきた。)
いえいえ、こちらこそ説明不足でした。もしぶっきらぼうな回答にお気を悪くなさったとしたら、申し訳ありません。
ほんと、有難うございました。お礼が遅くなり、申し訳ありません。ほんと、これからもっともっと勉強していきたいと思います。有難うございました。
No.5ベストアンサー
- 回答日時:
私もあまり詳しくないので、これよりももっといい方法があるとは思うのですが・・・
クエリーをもう一つ作るのはどうでしょうか。
ひとつのクエリーで全部をやろうとすると難しくなってしまうと思います。
ですから、先に「週報」のテーブルの[製品名]と[担当者]をグループ化したテーブルをクエリーを使って作成し、
そのテーブルをを今作ってるクエリーで呼び出してやればいいのではないでしょうか。
※デザインビュー
今作ってるクエリーは「選択クエリー」だと思いますが、メニューの「クエリー」というところで、クエリーの種類を選択できます。
そこで「テーブル作成」というのを選んで、適当なテーブル名を付けます。(カレントデータベースにチェックしてください)
そして、今度はなかみですが、テーブルの表示で「週報」のテーブルを選び、全てのフィールドをセットしてください。
このとき*は使用せずに、一つずつセットしてください。
そのときに[製品名]が一番左、その次に[担当者]がくるようにしてください。(左から優先されるため)
そして集計でグループ化します。そのとき[製品名]と[担当者]以外のものはグループ化以外のものに変えてください。
変えるといっても何にすればよいかわからないと思いますが、担当者が複数あった場合、そのなかのどれを表示するかによります。
例えば[部品コード]を「最大」にした場合は、[担当者]が同じなかで部品コードの番号が一番大きい[担当者]を選ぶようになると思います。
また、[カウント]を選んでレコード件数を返すというようなことも可能です。
わかりにくいかもしれませんけど、これでグループ化はできると思います。
上手くいかなかった場合はまた補足してください。
私もあまり詳しくないので、これよりももっといい方法があるとは思うのですが・・・
クエリーをもう一つ作るのはどうでしょうか。
ひとつのクエリーで全部をやろうとすると難しくなってしまうと思います。
ですから、先に「週報」のテーブルの[製品名]と[担当者]をグループ化したテーブルをクエリーを使って作成し、
そのテーブルをを今作ってるクエリーで呼び出してやればいいのではないでしょうか。
※デザインビュー
今作ってるクエリーは「選択クエリー」だと思いますが、メニューの「クエリー」というところで、クエリーの種類を選択できます。
そこで「テーブル作成」というのを選んで、適当なテーブル名を付けます。(カレントデータベースにチェックしてください)
そして、今度はなかみですが、テーブルの表示で「週報」のテーブルを選び、全てのフィールドをセットしてください。
このとき*は使用せずに、一つずつセットしてください。
そのときに[製品名]が一番左、その次に[担当者]がくるようにしてください。(左から優先されるため)
そして集計でグループ化します。そのとき[製品名]と[担当者]以外のものはグループ化以外のものに変えてください。
変えるといっても何にすればよいかわからないと思いますが、担当者が複数あった場合、そのなかのどれを表示するかによります。
例えば[部品コード]を「最大」にした場合は、[担当者]が同じなかで部品コードの番号が一番大きい[担当者]を選ぶようになると思います。
また、[カウント]を選んでレコード件数を返すというようなことも可能です。
わかりにくいかもしれませんけど、これでグループ化はできると思います。
上手くいかなかった場合はまた補足してください。
丁寧なご説明どうもありがとうございました。お礼が大変遅くなり申し訳ありません。日常業務におわれていて、インターネット開く時間がなかなか・・・。何度かチャレンジした結果、できました!やったぁ!!
クエリーのグループ化の優先順位を変え
>[製品名]と[担当者]以外のものはグループ化以外のものに変えてください
ここで手間取りましたが、なんとか一つのクエリーで可能となりました。大変勉強になり、ほんとに助かりました。この「教えて!goo」ページにも感謝します。有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでテーブルをコピーしよ...
-
最新日のデータのみ抽出するク...
-
2つのテーブルに共通するレコ...
-
Microsoft Access 「Form」のボ...
-
Accessのリンクされたテーブル...
-
access vbaにてテンポラリーテ...
-
Acccessで2つのテーブルから1...
-
Accessで表計算のMatch関数のよ...
-
COBOLでHEXを印字する
-
Accessでリストの並び順を変更...
-
MDBファイルを比較するツール(...
-
アクセスのクエリで集計
-
ACCESSユニオンクエリから新テ...
-
外部MDBのリンクテーブルの...
-
クエリで編集できるようにした...
-
Accessのテーブルで、リンク?...
-
アクセス2000でのリンク先...
-
access2000・・テーブルをデー...
-
アクセスVBA現在開いている全て...
-
accessのテーブルを閉じたとき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
ACCESSユニオンクエリから新テ...
-
Accessのリンクされたテーブル...
-
テーブルに表示されているもの...
-
ACCESSでテーブルをコピーしよ...
-
access vbaにてテンポラリーテ...
-
Accessでリストの並び順を変更...
-
Acccessで2つのテーブルから1...
-
Accessのテーブルで、リンク?...
-
ACCESS テーブルを見比...
-
クエリで同一テーブルの複数回...
-
ACCESS テーブルを見比...
-
accessのテーブルを閉じたとき...
-
Microsoft Access 「Form」のボ...
-
AccessVBAで任意の複数リンクテ...
-
アクセス2016 チェックボックス...
-
アクセス 部分一致の抽出
-
accessエラー回避について
-
Accesss テーブルの最終更新日...
おすすめ情報