- ベストアンサー
アクセス支払管理について
- 過去に値引きの割引率が異なる場合、値引きを実行する月によって会社が分かれています。具体的には、当月の売上より値引きする会社と翌月の売上より値引きする会社があります。現在は当月の売上に基づいて表示されていますが、翌月の売上に基づいて値引きを行う方法がわかりません。
- 問題の詳細として、『請求データテーブル』には請求番号、取引先コード、〆切り日、請求金額の情報があります。また、『支払データテーブル』には支払い番号、請求番号、支払い日、支払い金額の情報があります。そして、『値引きデータクエリ』では、取引先コード、請求番号、値引き金額の情報があります。これらのデータを『請求番号』で結びつけています。
- 翌月の売上に基づいて値引きを行う方法について、具体的な解決策はわかりません。しかし、可能なアプローチとしては、翌月の売上データを取得し、それを利用して値引きを行う処理を追加することが考えられます。具体的な実装方法については、プログラミングの知識が必要となりますので、プログラマーに相談することをおすすめします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。補足を読んでも今一つ良く判らないことと、問題を単純化するために、以下のようなテーブル設計で試してみました テーブル名:A取引先テーブル フィールド:取引先ID,取引先名,キャッシュバック率,キャッシュバック遅延月数 テーブル名:A請求テーブル フィールド:請求ID,請求金額,請求日,取引先ID 以下のようなSQL文(クエリ)で、6月1日請求の 請求日、取引先、請求金額、キャッシュバック金額 が表示されます。 SELECT A請求テーブル.請求日, A取引先テーブル.取引先名, A請求テーブル.請求金額, [A請求テーブル_1].[請求金額]*[A取引先テーブル].[キャッシュバック率] AS キャッシュバック金額 FROM (A取引先テーブル INNER JOIN A請求テーブル ON A取引先テーブル.取引先ID = A請求テーブル.取引先ID) LEFT JOIN A請求テーブル AS A請求テーブル_1 ON A取引先テーブル.取引先ID = A請求テーブル_1.取引先ID WHERE (((A請求テーブル.請求日)=#6/1/2009#) AND ((A請求テーブル_1.請求日)=DateAdd("m",-[A取引先テーブル].[キャッシュバック遅延月数],[A請求テーブル].[請求日]))); ※留意点 0.将来の拡張も含めキャッシュバックの遅れが2ヶ月以上も扱えるようにしています。 1.請求は一社から月一回しか来ないものとしています。それ以上ある時は集計クエリーの利用などが必要。 2.請求日は一日(ついたち)に固定しています 3.キャッシュバック金額に少数以下がありますが、そちらの規則に従い、切り捨て等の処理が必要です。
その他の回答 (1)
DBで実現しようとしている現実の請求システムに関する説明が不充分で良く判りません(回答しようがない)。 >翌月の売上より値引きする場合 どのようにして? 例えば、「今月分の売り上げ合計-先月の値引き合計=今月の請求額」になるのでしょうか?そうではなく、一件ごとに請求するならば、前月分の値引きはどこから?
補足
説明の仕方が下手ですいません。 当社が支払側です。 当社に届いた請求書に対してその金額の何パーセントかを取引先に値引きしてもらうのですが(不景気で支払条件に最近追加されました)、その値引きが請求書に対してその当月差引する取引先と、一旦全額支払い、その翌月に値引きという形でキャッシュバックする取引先があるのです。 請求NOでつなげているので 当月に繁栄されて支払予定額が値引きされて表示されてしまいます。 値引き金額をコンボボックスで"取引先CD,〆切日,値引き金額"と表示して その中から選択するようにかえてみようかと思っていますが、アクセス初心者でこのような場合はどうするのがよいのか・・・ どうぞよろしく御願い致します。
お礼
以前 振込料についてアドバイスいただいた『huuten_no_neko』さんだったんですね。振込料はうまく表示できるようになりました^^ありがとうございます。 今回のキャッシュバックもnekoさんと同じテーブルをつくりしてみたところうまくできたので、これを参考に支払テーブルに組みこんでみます。 ありがとうございました。