重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

製造工場での各工程で作業記録を行い、最新の生産状況をACCESSで管理したいと考えております。
製造番号毎に約10工程に分かれており、現在、それぞれの工程で作業内容を記録しています。
抽出条件として生産終了が空白⇒生産中なので除外、中断完了⇒中断は除外、
正常再作業⇒再作業は除外、完成フラグが1⇒全ての工程が完了し完成したので該当の製造番号は除外、
というものの中で製造番号毎の生産終了が最新のものだけを抽出したいという複雑な条件での要望です。工場内の最新の仕掛状況を把握したいという内容になります。

生産記録のテーブル
ID 製造番号    生産開始      生産終了 工程番号 中断完了 通常再作業 完成フラグ
2798 1900840A08 2019/12/14 10:48 2019/12/14 12:01 554 完了 通常 ⇒完成したので除外
2799  1900892A01 2019/12/22 15:31 2019/12/22 16:30 401 完了 通常
2800  1900840A08 2019/12/24 14:45 2019/12/24 15:59 538 完了 通常 ⇒完成したので除外
2801 1900852A08 2019/12/24 15:30 2019/12/24 16:15 131 完了 通常
2802  1900840A08 2019/12/25 8:46 2019/12/25 10:00 532 完了 通常 1 ⇒完成したので除外
2803  1900852A08 2019/12/25 16:57 2019/12/25 17:19 101 完了 通常
2804  1900852A08 2019/12/26 10:00         108 通常 ⇒生産中なので除外
2805  1900892A01 2019/12/27 17:14 2019/12/27 18:14 408 中断 通常 ⇒中断なので除外
2806  1900892A01 2019/12/28 16:16 2019/12/28 16:29 467 完了 再作業 ⇒再作業なので除外

求めたい結果としてIDが2799と2803の2つのレコードを抽出になります。
SQLもVBAも多少程度のスキルなのでやり方をご提示頂ければ勉強しなが理解したいと思います。
何卒よろしくお願い申し上げます。

質問者からの補足コメント

  • 補足:説明が分かりにくてすみません。画像添付しました。ID:2801は製造番号:1900852A08 のグループでID:2803の方が最新(終了時間)なので結果として抽出されません。

    「ACCESSクエリで複数条件での最新情報」の補足画像1
      補足日時:2020/03/01 09:19

A 回答 (3件)

No.2です。



> NOT IsNull(生産終了)

の所は

NOT 生産終了 Is Null

の方が良いかもです。
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。助かりました。
作成して頂いた内容は私には難しいですが、勉強しながら自分のものにしていきたいと思います。
誠にありがとうございました。

お礼日時:2020/03/02 14:01

正直常連さんならもっと短く書けるでしょうけど、初級者にはこれが精一杯でした。



SQLビューに、

SELECT a.ID, a.製造番号, a.生産開始, a.生産終了, a.工程番号, a.中断完了, a.通常再作業, a.完成フラグ
FROM 生産記録 AS a,
(SELECT 製造番号, Max(生産開始) AS 生産開始の該当時間
FROM 生産記録
WHERE NOT IsNull(生産終了) AND 中断完了 = '完了' AND 通常再作業 = '通常' AND 完成フラグ Is Null GROUP BY 製造番号) AS tb1,
(SELECT 製造番号 FROM 生産記録 WHERE 完成フラグ = 1) AS tb2
WHERE a.製造番号 = tb1.製造番号 AND a.生産開始 = tb1.生産開始の該当時間 AND a.製造番号 <> tb2.製造番号;

勘違いとか実際はもっと条件が違ったとかだと私にはお手上げかな。
    • good
    • 0

回答ではなくて申し訳ないですが。



Excelででも良いのでデータの様子を画像にしてアップされた方がわかりやすいのでは?
・中断完了⇒中断は除外、正常再作業⇒再作業は除外
ってどこの事を指しているのかわかりにくいと思います。

あと ID:2081 が除外されている(抽出すべき対象ではない)理由は何なのでしょう?
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。分かりにくい説明で申し訳ございませんでした。説明画像をアップしました。ID:2801は同じ製造番号:1900852A08でID:2803の方が最新なので抽出されません。よろしくお願い申し上げます。

お礼日時:2020/03/01 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!