
私はACCESS初心者です。
会社用で商品受注履歴を閲覧出来る仕組みをACCESSにて、運用しております。
商品価格変更時の設定方法について質問させて下さい。
以前こちらでの類似質問履歴を参照させて頂き、下記のテーブルを作成しました。
テーブル名:フィールド内容
(1)商品マスター:商品ID、商品名
(2)価格マスター:商品ID、商品名、価格(単価)、適用開始日、適用終了日
(3)受注マスター:商品ID、商品名、販売日、数量
クエリ名:フィールド内容
(4)受注閲覧:受注ID、商品名、価格(単価)、数量、販売日
使用方法:
(4)受注閲覧に、商品名、販売日(例:2007/7/1~2007/8/1)を入力し、
(3)受注マスターから、その期間に販売日設定された注文情報、およびその期間の商品価格を抽出する。
商品の価格変更時は、(2)価格マスターで商品ID・価格を新規入力しますが、
旧新価格とも商品名(主キー)が同じな為、(4)受注閲覧に販売日を入力した際、両方とも表示されてしまいます。
この時、「(2)価格マスター適用期間」の商品価格のみを引っ張り、(4)受注閲覧に表示出来る様にしたいのです。
色々と調べましたが、具体的な抽出条件が分からず、大変困っております。
是非アドバイスをお願い致します。
No.2ベストアンサー
- 回答日時:
このテーブル構造を提案したという回答には単価の参照方法も載っていたのでは・・・
受注閲覧クエリは受注と価格マスタを商品IDで結合したクエリにし
販売日の抽出条件欄に
Between 適用開始日 and 適用終了日
と書きます。これで販売日の単価を取ってこれます
なおテーブルにはまだ問題があります下のように変えてください
(1)商品マスター:商品ID、商品名
(2)価格履歴:商品ID、価格(単価)、適用開始日、適用終了日
(3)受注:商品ID、販売日、数量
マスタは半固定的な基本データを集めたテーブルにつけます
履歴や受注のようなものには使いません
特に受注は取引記録ですからマスタと反対に位置するトランザクションテーブルです
商品マスタがあるときそれを参照するテーブルには商品IDのみを
参照キーとしておきます
商品名を取り込んではいけません
早速のアドバイスを頂き、有難うございます。
>受注閲覧クエリは受注と価格マスタを商品IDで結合したクエリにし
>販売日の抽出条件欄に
>Between 適用開始日 and 適用終了日と書きます。
この方法で希望通りの仕組みを作る事が出来ました。
行き詰っていたので、本当に助かりました!
有難うございました!!
No.1
- 回答日時:
>商品の価格変更時は、(2)価格マスターで商品ID・価格を新規入力しますが、
>旧新価格とも商品名(主キー)が同じな為、・・・
本当に主キーは「商品名」ですか?
「商品ID」の間違いではないですか?
でなければ、主キーが一意とならない(重複する)ため価格マスターのレコード保存ができないのでは?
また商品名を主キーとするならば、商品マスターと価格マスターを分ける必要がないのでは?
さらにIDを設定する意味がないのでは?
以下は、商品IDが主キーとしての参考意見です。
適用期間が重複する、同一商品異価格が存在するのであれば、
受注閲覧クエリに、商品IDを加え、抽出条件に以下を入力します。
In(SELECT 商品ID FROM 価格マスター WHERE 適用開始日>=#2007/7/1# And 適用終了日<=#2007/8/1)
なお、日付は例示された販売日の期間を入れていますので、期間が変わればその期間を入れてください。
適用期間が重複する、同一商品異価格が存在しないのであれば、従来運用で結果が出るはずです。
個人的には商品名が主キーであるならば、その構造から見直す必要があるのではと考えます。
ただ、他の方からよい回答があるかもしれませんのであしからず。
御回答有難うございます。
申し訳ございません、主キーは「商品ID」の間違いでした。
丁寧なアドバイスを頂き、誠に有難うございました。
今回質問させて頂いた件に関しましては、
前項の方法にて解決致しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS 商品毎の最新の単価を設定するには?
その他(Microsoft Office)
-
ACCESS 売上管理 価格改定について
その他(データベース)
-
日付により変動する「単価」を取得するSQLを教えてください
PostgreSQL
-
-
4
ACCESSのマスタの変更について
PowerPoint(パワーポイント)
-
5
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
6
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
最新の日付とその金額をクエリー抽出したい(access)
その他(データベース)
-
9
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
再計算って出来ますか?
-
ACCESS検索★ある文字を複数のフ...
-
Excel 2019 のピボットテーブル...
-
【続続】Access2002で連番のつ...
-
【Access】フォームで自動計算...
-
OCNのwebメールを開くとき、シ...
-
保存された情報として表示され...
-
Accessで、複数のテーブルで随...
-
Accessのクエリでデータの入力...
-
accsessで顧客コードで氏名を呼...
-
どれがPrimary Key、ForeignKey...
-
datファイルからaccessにインポ...
-
下記の事を行うSQLがわかりませ...
-
Countと受付状態の表示に...
-
Access クロス集計クエリについて
-
デザインビューで、連結式 を...
-
Access2000 更新のタイミング?
-
カウントが出来ません
-
Vbaでアクセスからエクセルにリ...
-
Accessファイルを作成者以外は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
再計算って出来ますか?
-
Accessの帳票フォームで重複デ...
-
受注明細テーブルについて
-
MS ACCESS 商品価格変更時の該...
-
usingの意味がわからないのですが
-
Access2021 「ISNULL関数には引...
-
アクセスのテーブルを分ける理...
-
あるフィールドの最大値を条件...
-
Accessフォーム全レコードをPDF...
-
SQLの作り方
-
ACCESS VBA クエリを開く
-
SQL文について
-
ボイスコッド正規形
-
accessのレポートで困ってます。
-
SQL Server 2005 Expressで営業...
-
正規化
-
フィールド名が取得したい
-
SQL EXISTS演算子について
-
【Accessクエリ】存在しないデ...
-
SQLサーバ、INSERTで自動採番
おすすめ情報