質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

1501閲覧

access2000データー時間重複データーの件数を求めたい

SHIMIZU.MAKOTO

総合スコア7

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2015/09/02 03:53

編集2015/09/02 03:56

Access2000のデーターについて教えていただきたいのですがお願いいたします。
社員3人の業務出動データーについてですが

出動番号 社員名 年月日 出動時間 帰社時間 Q1 Q2
5898 A H27.8.8 9:39:00 10:36:00
5903 A H27.8.8 13:52:00 14:34:00
5911 A H27.8.8 16:31:00 17:23:00
5912 A H27.8.8 17:52:00 18:25:00
5916 A H27.8.8 19:37:00 20:41:00
5917 B H27.8.8 19:52:00 20:27:00 1
5930 A H27.8.9 4:20:00 5:03:00
5932 A H27.8.9 7:33:00 9:16:00
5933 B H27.8.9 8:02:00 9:14:00
5935 C H27.8.9 8:57:00 9:32:00 1
5942 B H27.8.9 9:15:00 12:14:00 1
5943 A H27.8.9 11:38:00 12:18:00
5946 C H27.8.9 12:11:00 13:13:00 1
5948 A H27.8.9 12:37:00 13:35:00 1
5965 A H27.8.10 4:15:00 4:56:00
5977 A H27.8.10 10:59:00 12:41:00
5992 A H27.8.10 20:46:00 21:55:00

上記データーの内容ですが、顧客からの依頼を受け、業務出動します。3人が常駐しており、Aがいる場合基本はAが出動し、Aが出動しているときに依頼が入った場合はBが出動、更に依頼が入った場合、AかBが帰社しているときはAかBが出動、A及びBが帰社していない場合はCが出動します。(体調不良等で出動できない場合は基本をくずす場合もあります)
Q1は、出動が2人重なっている時間帯がある場合、Q2は出動が3人重なっている時間帯がある場合に値が入る(件数計算するために1を入れたい)。
やりたい事は、2人の社員の出動時間が重なっている時間帯の件数、3人の社員の出動時間が重なっている時間帯の件数を出すということが目的です。(月ごとに算出したい) よって、Q1やQ2のフィールドを作成せずとも、件数が出る方法があればその方法でかまいません。
分かりづらい文章ですみませんが、ご教授いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/09/02 08:44

「重複する時間帯」の定義はどうなりますか? 何時台ってことでしょうか?
SHIMIZU.MAKOTO

2015/09/02 09:13

ありがとうございます。何時台という定義はないのですが、補足します。24時間交代制の勤務でありまして、3人が勤務します。業務出動は電話1本で24時間どの時間でも出動がありえます。出動時間から帰社時間を照らし合わせて、会社に1名残っている状態をQ1、会社に誰も残っていない状態をQ2とすれば定義となりますでしょうか?交替時も一時的に社員6名の時間帯はできますが、出動車両が3台のため出動社員は3名までとし、Q1、Q2については上記記載の状態であるとお考えいただければと思います。説明が至らないかもしれませんが、何とか伝えたいと思いますのでお願いいたします。
guest

回答2

0

ベストアンサー

下記のSQLで出動時間(出動番号毎)時点での出動人数を取得できます。

SQL

1SELECT A.出動番号, A.年月日, Count(A.出動番号) AS 出動人数 2FROM 業務出動 AS A, 業務出動 AS B 3WHERE A.出動時間>=B.出動時間 And A.出動時間 GROUP BY A.出動番号, A.年月日;

出力結果
出動番号 年月日 出動人数
5898 H27.8.8 1
5903 H27.8.8 1
5911 H27.8.8 1
5912 H27.8.8 1
5916 H27.8.8 1
5917 H27.8.8 2
5930 H27.8.9 1
5932 H27.8.9 1
5933 H27.8.9 2
5935 H27.8.9 3
5942 H27.8.9 3
5943 H27.8.9 2
5948 H27.8.9 1
5965 H27.8.10 1
5977 H27.8.10 1
5992 H27.8.10 1

このクエリを Q_出動人数 として、このクエリからさらに集計クエリを作成すればいいでしょう。

SQL

1SELECT Format([年月日],"yyyy/mm") AS 年月, Q_出動人数.出動人数, Count(*) AS 重複件数 2FROM Q_出動人数 3WHERE Q_出動人数.出動人数>1 4GROUP BY Format([年月日],"yyyy/mm"), Q_出動人数.出動人数;

出力結果
年月 出動人数 重複件数
2015/08 2 3
2015/08 3 2

投稿2015/09/12 05:37

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHIMIZU.MAKOTO

2015/09/12 06:52

解決しました。 hatenaさんありがとうございます。
guest

0

仮に組んでみました。
二人が重複する時間帯があることを検出するクエリー
このクエリーの結果が、
上記クエリーの結果
となります。
これを踏まえて月間の重複件数が、
月間の重複件数
で結果が
結果
となりました。
3人が重複する時間帯を求めるとなると、
X,Yの他にZを用意して調整することになりそうです。

投稿2015/09/02 09:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHIMIZU.MAKOTO

2015/09/02 09:36

ありがとうございます。回答していただいた内容も理解できずにいますが、統計業務として行っているものです。いただいた回答を自分も試してみます。しかし、基礎知識が乏しいため本当に申し訳ないのですが、Zを用意して調整する部分についてもご教授願えないでしょうか?
退会済みユーザー

退会済みユーザー

2015/09/02 12:01

Aさん、Bさん、Cさんの出動関係性が問題の通りAさんが最優先、Bさんが次、Cさんがその次というルールであればわりといけるかと思いましたが、例外もあるということであるなら、例えばAさんの時間帯にCさんが重複することとCさんの時間帯にAさんが重複することは同じことを指しているので、そういうのをうまく省く必要が出てきますよね、この回答はズレてるかもしれません。
SHIMIZU.MAKOTO

2015/09/12 07:24

m6uさんありがとうございました。回答していただいた後、自分でも色々試してみましたが自力ではたどり着けず、hatenaさんの回答で結果が得られました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問