• 締切済み

アクセスのクエリで2つのレコードの差の計算方法

アクセスのクエリで今回と前回の記録を抽出してその差の計算方法を教えてください。 アクセス初心者です。 病院の患者記録で以下のようなテーブルがあり、患者毎に不定期に評価を行います。 T_患者情報 フィールド名 (データ型) ID (オートナンバー) 氏名 (テキスト) 生年月日 (日付) T_ 評価記録 フィールド名 (データ型) No (オートナンバー) ID (数値) 病棟 (テキスト) 記録日 (日付) 点数1 (数値) ・ ・ ・ 点数10 (数値) 点数1~10の合計点を用いて月毎と年毎の病棟別改善率を求めたいと思っています。 改善率の計算方法は、「(合計点数)-(前回の合計点数)/(記録日)-(前回の記録日) (単位:点/日)」です。 そして、月毎の場合はその月に記録のあった患者のみの改善率を出して病棟別の改善率を計算したいと思っています。 最終的にはフォーム上で年・月・病棟という非連結テキストボックスを作り、検索ボタンを押すと月別・年別に病棟別改善率が表示されるようにしたいのですが、クエリの作成方法がわかりません。具体的にはその月に記録をした患者を抽出し、前回の合計点数をどのように抽出してどこで計算すればいいのでしょうか? ご教授よろしくお願い致します。

みんなの回答

noname#192382
noname#192382
回答No.1

わからないことがあります。二つのテーブルの関係はどんなですか。評価記録は患者ごとにありますか。だとすれば評価記録のテーブルに患者IDのフィールドを入れる必要があります。または評価記録は病棟ごとにありますか。だとすれば患者情報のテーブルに病棟のフィールドが必要です。 また計算式は ((合計点数)-(前回の合計点数))/((記録日)-(前回の記録日) )が正しいのではないですか。

dai9921
質問者

補足

ご指摘ありがとうございます。 2つのテーブルの関係はT_患者情報の「ID」フィールドとT_評価記録の「ID」フィールドでリレーションしています。 病棟に関しては患者情報にフィールドを設置して、もし病棟が変われば新規で患者情報を追加します。 計算式はご指摘の通りです。( )が抜けていました。 説明不足で申し訳ありませんでした。 よろしくお願いいたします。

関連するQ&A

  • こんな平均値の求め方を教えてください。

    病院に勤務しているのですが、患者さんの状態の改善率の平均を計算したいと思っています。 具体的には患者一人につき100点満点で評価する評価方法があり、前回と今回の記録から改善率(1日に何点改善したか)を計算します。  [改善率(単位:点/日)] = ([今回の点数] - [前回の点数])÷ ([今回の日付] - [前回の日付])                =[点数差] ÷ [日数] その後、全体の改善率の平均値を求めるには下記のどちらが正しいのでしょうか?  (1) [改善率の合計] ÷ [人数]  (2) [点数差の合計] ÷ [日数の合計]

  • アクセスのレコードが計算されない・・・・

    windows2000/Access2000 レンタカーというテーブルがあって、そこから売上年が2003年、売上月が2月のデーターをフォームフィルタで検索かけてレコードを抽出し、エクセルにOfficelinksを使って出力しました。 SUMを使って請求書計の合計を計算させようとしましたが、計算されず0になってしまいます。 フォームフィルターなど検索かけずに全てレコードを出力した場合は計算されるのですが・・・? フィルターを使って検索抽出したデーターはエクセルに出力して計算させる事って出来ないのでしょうか?

  • ACCESSのクエリ?の計算について

    ACCESS初心者です。教えてください。水道使用量をアクセスで計算しようとしています。 毎月、決まった日に検針を行い入力をしています。 テーブル1に [検針年月(数値型)][水道メータ(数値型)]があります。 [200904][130] [200905][145] [200906][159] このような、テーブルになっています。ここから、[200906]の使用量として今月の水道メータから先月の水道メータを引いて 他のテーブルを作成したいのですが [検針年月(数値型)][水道使用量(数値型)] [200904][13] [200905][15] [200906][14] と作成したいです。やり方を教えてください。

  • Access クエリで2段階計算をしたい

    Access2003を使用中です。 Access初心者です。 ある数値データのテーブルがあります。 A~Gグループ毎にクエリをつくりそれぞれ小計を出しています。 さらにA小計~G小計 を合計する別のクエリをつくり、  合計:Nz([A小計]+[B小計]+・・・・+[G小計]) という式を入れたのですが、計算されるのではなく、数字の連なりになって出てきます。 説明が悪いのですが、  例えばA小計=12  B小計=16 C小計=6 ・・・・ だと このフィールドには  「12166・・・」という形で出てきます。 計算の式が間違っているのでしょうか?それともクエリで出した小計を更に合計することは出来ないのでしょうか? 申し訳ありませんが、ご教授ください   

  • Accessで表計算のような事をしたい

    Access2003 WinXP です。 1年間の集計を、ユーザが自由に区切って計算出来るようにしたいと思っています。 商品名\月 1 2 3 4 5 6 7 ・・・12 過去合計 未来合計 総合計  商品名NO.1 10 10    5 10  5 10 ・・・10   商品名NO.2 50 50 40 50 70 50 30 ・・・20     商品名NO.3 20   20   20 20 10 ・・・40        ・1月から12月までのフィールドがあります。 ・各月に入る数値を取得するには、いくつかのテーブルからの合計を入れるのでクエリでひっぱってきています。 ・空欄の時もあります。(受け取った.csvをテーブルへ読み込んでいるのですが、ちなみにNullではなく""でした。) ・読み込んだ数値を、直接手入力で直したいです。 これを、例えばユーザが4月で区切りたいと思ったら 1月~4月までの合計が【過去合計】に 5月~12月までの合計が【未来合計】に 双方の合計が【総合計】に入るようにしたいのです。 データ全てを読み込んだ後に区切りたいのですが、各月の上にでも【区切りボタン】みたいなのを設けるのが良いのでしょうか? コンボボックスを設けて、【○○月で区切る】を選択したイベントで計算しなおすのが良いのでしょうか? 又、フィールド上にテキストボックスを横15個(1~12月と合計3種)置いて 数値を各テキストボックスへ入れていたのですが、 データ数(行にあたるというか)が膨大である事が分かり、その方法は現実的ではなくなりました。 リストボックスにしようと思ったのですが、リストボックスだと直接入力が出来ず・・・。 Excelを設置しようと思ったのですが、設置しても動きが変でよく分かりませんでした;; VBのグリッドのようなのがあると良いのでしょうか? Excelへ吐き出すのはなるべく避けたく、出来ればAccessのフォーム上で再現したいのです。 Accessで何とかうまく出来る方法がありましたら教えて下さい。宜しくお願いします。

  • アクセス 同じフィールド(テキスト型)のレコードを連結させたい

    お世話になります。アクセスの超初心者です。 数値型であれば同じ列の合計できますが、テキスト型で以下のように 連結できる方法がございませんでしょうか? <元テーブル> レコード番号  列:キーワード(テキスト型)  列:抽出条件   1      "山,川"                AAA   2      "海外,国内"             AAA   3      "熊,馬"                BBB   ↓このテーブルを元にクエリをかける <クエリ出力結果> 列:抽出条件にAAAを指定   列:キーワードの合計(連結)   "山,川、海外,国内"       ^^      ↑連結の境目には"、"などの区切りを入れたい。 宜しくお願い致します。

  • ACCESSのクエリ:抽出条件で型が一致しません

    ACCESSでクエリを作ったのですが 実行すると、 「抽出条件で型が一致しません」のエラーが出ます 問題となっているヶ所は テーブルのフィールド定義がバイナリーになっています そして、クエリで   フィールド   テーブル   並べ替え   表示   抽出条件   または となっていますが、 この抽出条件に、1、を入れました テキスト型なら、"1" 数値系型なら、1、でいいのか、と思ったのですが バイナリ型は別の表現があるのでしょうか よろしくお願いします

  • ACCESS合計の出し方

    ACCESS2000で、データベース作成しております。 フォーム  1.名前  2.合計 サブフォーム  1.No  2.点数 サブフォームの点数の合計を、フォームの合計へ自動計算されるようにしたいのですが・・。 フォームの合計テキスト プロパティ⇒イベント⇒更新後処理 へ下記の式を入れても何も表示されません・・。 Sum [フォーム名.テキスト名] どうすればよいのでしょうか? お願いします。

  • アクセス2002のクエリで・・・

    急いでいまして、下記の点についてアドバイスいただけると幸いです。 テーブルが以下のようになっていまして 【得意先番号】【年度】【支払日】【請求額】 (行1)【111111111】 【H14】【 6/16 】【7,000】 (行2)【111111111】 【H14】【 7/16 】【4,000】 この得意先番号は一人に対し一義的に決まる番号で、行ごとに一回の請求額がテーブルに記録されています。 このテーブルから、いつの支払日にいくらかったのかという条件で得意先番号を抽出することは可能でしょうか? 具体的にいいますと、うまく説明できないのですが、請求額が何月何日にいくら足りないというのは把握できているのですが、それが誰なのかが把握できていない状況で、何月何日いくら、何月何日にいくらという感じで過去10回ぐらいの履歴で購入者を特定したいというのが今回書き込んだ目的です。 アドバイスいただけると幸いです。

  • Access サブフォームにフィルター後、計算

    Access2003です。 1.サブフォームにフィルターをかけてレコードを抽出  (フォームフッターで合計値を計算するフィールドを用意しておく) 2.その合計値を利用した計算結果をカレントレコードのフィールドに自動入力 これを1つのプロシージャで行いたいのですが、うまくいきません。 1と2を分けるとうまくいきます。何か方法はありますでしょうか。 具体的に… サブフォームのカレントレコードの[西暦]フィールドにある値と同じ値が入っているレコードを抽出。 抽出されたレコードの合計をフォームフッターで算出。([原価合計][受注高合計]) [カレントレコードの売上高]=[(カレントレコードの)原価]/[原価合計]*[受注高合計] ※全体の原価に占めるカレントレコード原価の割合で、売上高を算出します。 これを一括処理しようとすると、フィルター後の[原価合計][受注合計]の算出が間に合わないのか、「0で除算しました」とエラーが出ます。 フィルターをかけるのと、売上高を求めるのを別々のプロシージャに分けて順に実行するとちゃんと算出できます。 一括でやりたいのですが、良い方法はありますか? 宜しくお願いします。 ※前回もAccessの質問をさせていただきましたが、お礼を入力する前にベストアンサーを決定してしまったため、お礼ができませんでした。回答者の皆さんその節はありがとうございました!

専門家に質問してみよう