会費を割引いた額を計算する方法とは?

このQ&Aのポイント
  • Accessのクエリで会費を計算させたい場合、会員テーブルの会員種別と会員期間を利用して会費を割引いた額を求めることができます。
  • IDごとの会費の計算方法は、会員種別ごとに固定額があり、期間に応じて割引を適用します。
  • ExcelのIF文ではなく、SQLの式ビルドの記述を使用して、会費の計算を行う方法をご教授いたします。
回答を見る
  • ベストアンサー

Accessのクエリで会費を計算させたいのですが

会員テーブルの会員種別をみて会費を割引いた額を求めようとしています。(会費から期間で割引く) ID  会員種別 会員期間  会費  1    A    5   300円  2    B    4   400円  3    C    3   500円  4    D    3   600円  5    A    3   300円 ID1の場合は種別がAなので会費300円で、 300円-300円*5%(5は会員期間) ID2の場合は種別がBなので会費400円で、 400円-400円*4%(4は会員期間) という感じで、種別ごとに固定額があり期間に応じて 割引という計算をさせたいのです。種別は4種類で 今後計算を見直す可能性があります。 EXCELならIF文で書いてしまうところですが、 可能ならばSQLで書かずに式ビルドの記述で 対応したいので、よろしくご教授ください。

  • senho
  • お礼率47% (10/21)

質問者が選んだベストアンサー

  • ベストアンサー
  • nackfive
  • ベストアンサー率32% (21/64)
回答No.1

モジュールで処理するのが シンプルで良いと思います。 種別が何種類あるのかわかりませんが A~Dまでと 仮定しますね。 Function Kaihi(Shubetu as string,Kikan as Integer) as Currency Dim Kingaku as Currency Select Case Shubetu Case "A" Kingaku=300 Case "B" Kingaku=400 Case "C" Kingaku=500 Case "D" Kingaku=600 End Select Kaihi=Kingaku-Kingaku*(Kikan/100) End Function 動作確認はしていませんが こんな感じでいけると思います。

senho
質問者

お礼

ありがとうございます。この方法ならば、今後金額や割引率を見直すときにも修正が簡単にできそうです。 自分以外の担当者が修正することも想定して、この 方法で作成してみました。 実際はもう少し複雑なのですが、caseで分岐させて いるので計算式も加工しやすかったです。 ありがとうございました。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

会費が決まっていて会員期間で割引くのでしたらテーブルに会員種別まで入力されている状態ならIIfを使わないで出来るのでは?(会員種別によって割引率の会員期間に変数を使うようではないので) 式ビルダで単純に =[会費]-([会費]*([会員期間]/100)) で割引かれた金額を求められます。

関連するQ&A

  • Accessのクエリー 計算について

    N番号をキーに容積を計算するクエリを作成しています。 それには条件があり、種別が1の場合はマイナスして計算、種別が2の場合はプラスして計算という風にしたいです。 単純にSUM関数を使用するだけではできないと思うのでやり方を教えて下さい。 条件を含めていないSQLは・・・ SELECT DISTINCTROW 種別, N番号, Sum(容積) AS 合計容積 FROM テーブル名 GROUP BY 種別, N番号; となっています。

  • クエリ上でフィールド名が2つあるときの見分け方

    初心者です。 テーブルを複数使って、クエリを作っているのですが、 『&』でフィールドをつなごうとしたとき、 「指定されたフィールド'[会員種別ID]'がSQLステートメントのFROM句にある複数のテーブルを参照しました」 と言うエラーが出てきます。 多分これは、T_顧客リストとT_会員種別の両方に[会員種別ID]があるので区別がつかないと言う事だと思います。 (間違っていたら正しい意味を教えていただけますか?) だから、どうしたら区別できるのでしょうか?

  • アクセス クエリでの残高計算について

    アクセスクエリでの残高計算について 返金日を入力した場合、伝票日を基準とした残高がマイナスとなる式を教えてください。 現在のクエリ(ID~返金日)の状態です。 ID......伝票日....会社....銀行......出金額......返金日..........残高 1..........4/1.............A..........あ..........100円..........5/10.............100円 2..........4/15..........B..........あ..........400円..........空白.............500円 3..........4/30..........C..........い........1000円..........5/15..........1500円 4..........5/10..........B..........い...........300円..........5/20..........1200円 5..........5/14..........A..........い..............50円..........空白..........1250円 6..........5/15..........A..........あ..............50円..........空白............300円 【補足説明】 ID4:ID1でAが100円返金済みなので1500+300-100=1200円となる ID6:ID3でCが1000円返金済みなので1250+50-1000=300円となる (1)返金日に日付けを入力するとマイナスとなる残高計算をしたいと考えていますが可能でしょうか? ・可能な場合、数式?を教えていただきたいです。 ・不可能な場合、どういった解決策があるか教えていただきたいです。 (2)また、A会社を抽出後に、銀行別で(1)と同じように残高を表示させたいと考えていますが、 どのように、(1)の表よりどのように加工すれば、いいのでしょうか? (簡単にでもいいので是非お願いします) 今回アクセスを初めて使い、苦戦しております。 どうぞ、ご回答のほう、よろしくお願いいたします。

  • ACCESSのクエリ

    いつもお世話になってます。 今回はACCESSのSQLのクエリについて質問します。 テーブルAを日付ごとにテーブルBのようにしたいのですがどうすれば良いでしょうか? テーブルA ID  日付  商品  個数 1   1/1  ドコモ  10 2   1/1  AU   11 3   1/1  ソフト  12 4   1/2  ドコモ   5 5   1/2  AU    4 6   1/2  ソフト   3 ・ ・ ・ テーブルB 日付   ドコモ  AU  ソフト 1/1    10    11   12 1/2     5    4    3 ・ ・ ・ わかりにくい説明かもしれませんがよろしくお願い致します。

  • アクセス・クエリ内のフィールド上での計算式について

    アクセス上には、顧客IDテーブル、売上テーブルと入金テーブルがあります。 (1) 売上テーブル及び入金テーブル上でのIDは、顧客IDテーブルと紐付くようにしています。 (結合プロパティは、顧客IDテーブルの全レコードと売上(入金)テーブルの同じ結合フィールドのレコードだけを含める設定にしています。) (2) 売上(入金)テーブルからクエリでID毎の合計売上額と合計入金額を算出しました。 (3) (2)を基にフィールドに"ビルダー"にて合計売上額-合計入金額として、ID毎の残高を算出しました。 (4) 問題は、(2)のID毎に合計売上額があっても、IDによっては未入金の場合もあり、 その場合、合計入金額を算出するクエリ上ではそのIDは空の状態で"0"表記もされないために、 (3)は、何も表示されません。(即ち、合計売上額100 - 空 = 空)。空ではなくて、ちゃんと空の場合は、0認識出来る方法ってありますでしょうか?

  • レオパレス年会費について

    私は9年レオパレスの同じ物件に住んでいるのですが、 レオパレスの年会費制度が平成15年に廃止された事を最近知りました。廃止の連絡はなく、それ以前から住んでいる人は未だに年会費を払い続けています(年あたり:25000円程度)。 廃止されたものに関しては払いたくないので、管理センターに以下の項目を相談したいと思っているのですが、各項目の【考察】についてご意見頂けないでしょうか。 (1)廃止した年からの年会費を返金して欲しい。  【考察】・・・手元にないため契約書未確認ですが、契約上無理だ とは思っております。 (2)次の年会費は払うつもりはない  【考察】こちらの言い分としては以下の通りです。  ・平成15年時点でも、本日以降までレオパレスからの転居の予定はなかった。  ・年会費制度が廃止になった平成15年時点で連絡があれば、即時に会員種別変更(年会費無料)を行っていた。  無料で現在の会員種別(年会費不要)に変更してもらえる場合   →平成15年時点で連絡があれば、即時に会員種別変更(年会費無料)を行っていたので、全額返金して欲しい((1)に矛盾しますが・・)    有料で現在の会員種別(年会費不要)に変更してもらえる場合   →金額によりますが、会員種別変更の手数料(A)と 平成15年~現在まで支払った年会費(B)を比較した場合(B)の方が金額が大きくなるのであれば、差額分を返金して欲しい。また次の年会費は支払う必要はない。    長文で申し訳ありませんが、ご回答のほど宜しくお願いいたします。  

  • 生年月日計算について

    テーブル(A)     テーブル(B) ID --- 111      ID ---111 生年月日 --- 2007/02/18    日付 --2008/10/3 テーブル(A)には、ID、生年月日があります。 テーブル(B)には、ID、日付があります。 テーブル(A)の生年月日とテーブル(B)の日付を計算し 表示したいと考えていますが、うまく行きません…。 やりたい事としては、テーブル(B)の値とテーブル(A)の値を計算し 2008 - 2007 = 1なので1才と表示し、 10 - 02 = 8なので、8ヶ月と表示したいと考えています。 やり方として一番どのようなやり方が キレイなSQLを書けるのでしょうか? 一応http://ayuayuayu01.seesaa.net/article/106439889.htmlを参考にして やるか、またはSUBSTRで行う方法をイメージしています。 出来れば1回で実行したいので、SUBSTRは向いていないのかなぁっと思っています。

  • 外部結合?

    SQLについてです。 テーブルA ID 価格 タイプ 01 1,000 A01 02 2,000 B02 テーブルB ID 名前 種別 01 test a 03 aiue b 上記のようなテーブルがあったとして テーブルAとテーブルBを外部結合し 紐づくレコードがあった場合、さらに 種別=a で検索を行いたいのですが 書き方がよくわかりません。 外部結合で検索し、紐づくレコードがあった場合に さらに検索条件を絞る場合には どう書いたらいいのですか? よろしくお願いします。

  • アクセスのクエリーのことで教えてください

     テーブル1とテーブル2があってクエリーでリレーションシップを組むときに  結合プロパティを「テーブル1の全レコードと、テーブル2の同じ結合フィールドのレコードだけを含める。」にして表を作ろうとしたのですが、テーブル2に レコードが無い場合、テーブル1,2を使って作ったクエリー1で表を作り、 ビルドでクエリー1の項目を貼り付けて、計算させると、テーブル2にレコードが無いと空欄になっているためか、計算がうまく行きません。この問題を解決するにはどのような方法をとればよいですか? ほんとにこまったちゃんになっているので教えてください。 

  • アクセスのクエリで

    テーブルAには、商品コードと数量と金額。 テーブルBには、商品コードと空のフィールド。 テーブルBにAのテーブルを参照して、該当する商品コードの金額を空のフィールドにコピーしたいのですが、どうしたらいいでしょうか。 SQL文で書いて頂いても結構です。 よろしくお願い致します。

専門家に質問してみよう