- ベストアンサー
ACCESSで近似値を求める方法を教えてください。
ACCESS初心者レベルの者ですが、クエリなどについて 教えていただけますでしょうか。 給与計算や社会保険の手続きの仕事をしており、 ACCESS2000で社会保険の随時改定対象者の抽出を 行いたいと思って、テーブルには (1)毎月給与の各項目(毎月インポート予定)と、 (2)保険料一覧のテーブルを作りました。 また、クエリで改定対象者各人の (1)3ヶ月平均報酬 をAvg関数で各人の報酬を算出することはできました。 次にこの(1)で算出した3ヶ月平均報酬が (2)保険料一覧[テーブル]フィールドのどの範囲に該当するかという クエリを組みたいのですが、どのようなものが考えられるか 教えてください。 例えば、(1)で一番上の215,230円だったら該当するのは (2)では210,000以上229,999以下の範囲となり、220,000を 抽出してくる。 というものです。 (1)3ヶ月の平均報酬[クエリ] 215,230 234,500 255,000 280,000 (2)保険料一覧[テーブル] --------------------------------------------------- 報酬月額以上 報酬月額以下 標準報酬等級 標準報酬月額 210,000 229,999 18 220,000 230,000 249,999 19 240,000 250,000 269,999 20 260,000 270,000 289,999 21 280,000 290,000 309,999 22 300,000 310,000 329,999 23 320,000 330,000 349,999 24 340,000 --------------------------------------------------- EXCELでやるとすれば、 Vlookup(3ヶ月の平均報酬A2、保険料一覧A2:G4、4、true) と検索の型をtrueにして近似値を抽出するのと同じ事をACCESSで 行ないたいということです。 なお当方、恥ずかしながら不勉強の為、VBAやSQL文の書き方や さらにODBCの設定の仕方などもまだ解からないレベルです。 何卒、ご教授の程、宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
お礼
とても丁寧なご回答ありがとうございました。 ご指摘の ・保険料一覧の範囲外のレコードの扱いに関して ・平均報酬の小数点以下の扱いに関して についてですが、保険料一覧は一部を抜粋しました。 報酬月額以上&以下には 下限の0円~上限の99,999,999円までの範囲を設けております。 さすがに報酬が99,999,999円を越える事はないと思いますので(^_^;) 小数点以下はINT関数でまるめております。 3ヶ月平均報酬がマイナスになった場合まではまだ考えていないのですが・・・。 ご教授いただいたSELECT~をSQLビューにコピペしてみたところ、 (テーブル名、フィールド名は修正してます。) 以上、以下それぞれでパラメータを要求されてしまいました。 当方の質問の段階で明記しなかった不備があったのですが この作成しようとしているクエリを開くと、すでに 3ヶ月平均報酬を参照して各報酬月額の範囲から標準報酬月額が 抽出されているものをイメージしておりました。 ですので、もう少し調べてみたいと思います。