OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

前のレコードの合計に現レコードの値を加えたいのです。

  • すぐに回答を!
  • 質問No.243466
  • 閲覧数315
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (5/15)

ACCESSを使っています。
たとえばひとつのレコードに車のデータとして
[日付]、[今日の走行距離]、[総走行距離]があるとします。

[今日の走行距離]は入力するとして、[総走行距離]
を前に入力した最終日の[総走行距離]に[今日の走行距離]
を加えた値を表示できないでしょうか。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル9

ベストアンサー率 50% (37/73)

テーブルは[日付]、[今日の走行距離]だけをフィールドとして持ちます。そして名前はtbl1とします。
下のクエリーを使いえば、ご希望の結果になると思います。

SELECT T.日付, T.今日の走行距離, Sum(S.今日の走行距離) AS 総走行距離
FROM tbl1 AS T, tbl1 AS S
WHERE T.日付>=S.日付
GROUP BY T.日付, T.今日の走行距離
ORDER BY T.日付;

ただしテーブルに同じ日付のレコードが出てこない事が条件です。
なおデーターベースには一般にひとつ前のレコードという概念は無いので、この様な処理は表計算ソフト向きの様な気がします。
補足コメント
ichiro-ichiro

お礼率 33% (5/15)

早速の返答どうもありがとうございます。ですがあまり詳しくないため
どのように使用するのかちょっとわかりませんでした。

やりたいことなのですが、
その車を一日に何度も使用します。[使用者],[行き先]等を入力し、
後にいろいろな条件によって表(レポート)を作りたいのです。ですので
その時点での[総走行距離]が必要なのです。

エクセルでしたら計算は簡単なのですが…。後にデータをいろいろと
応用できそうだと言う点でアクセスで、と思ったのです。

申し訳ありませんが、もしわかりましたらまたよろしくお願いします。
投稿日時 - 2002-03-29 18:40:39
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 42% (80/189)

一つのレコードに総走行距離があるのはおかしくないですか? フィールドとしては,[日付],[今日の走行距離]だけで, 総走行距離は SELECT SUM(field_name) FROM table_name とすれば取得できますよね. 総走行距離をどうしてもそのレコードに入れる必要があるのでしたら 最初に日付の降順に取得して,一番最初のレコードの総走行距離と 今日の走行距離を足したものをUP ...続きを読む
一つのレコードに総走行距離があるのはおかしくないですか?
フィールドとしては,[日付],[今日の走行距離]だけで,
総走行距離は
SELECT SUM(field_name) FROM table_name
とすれば取得できますよね.
総走行距離をどうしてもそのレコードに入れる必要があるのでしたら
最初に日付の降順に取得して,一番最初のレコードの総走行距離と
今日の走行距離を足したものをUPDATEすればよいと思いますけど,
非常に非効率だと思います.
補足コメント
ichiro-ichiro

お礼率 33% (5/15)

 ありがとうございます。指摘のとおり総走行距離はレコードに、ではなくて
レポートに必要なものでした。一日に複数の人間がいろいろなところへ車を
使用するので、そのつどその時点での総走行距離がほしいのです。

そのつど、という部分で躓いています。もしわかったらまたお願いします。
投稿日時 - 2002-03-29 18:52:45

  • 回答No.3
レベル9

ベストアンサー率 50% (37/73)

>その車を一日に何度も使用します。 でしたら、テーブルに番号というフィールドを設けてください。 その日の何番目の使用かという事を記録します。1日の最初の使用は1、次が2という具合です。日付と番号の両方が同じというレコードは無い様にします。 クエリーは下記のようになります。 SELECT T.日付, T.今日の走行距離, Sum(S.今日の走行距離) AS 総走行距離 FROM tbl1 AS ...続きを読む
>その車を一日に何度も使用します。
でしたら、テーブルに番号というフィールドを設けてください。
その日の何番目の使用かという事を記録します。1日の最初の使用は1、次が2という具合です。日付と番号の両方が同じというレコードは無い様にします。
クエリーは下記のようになります。

SELECT T.日付, T.今日の走行距離, Sum(S.今日の走行距離) AS 総走行距離
FROM tbl1 AS T, tbl1 AS S
WHERE T.日付>S.日付 or (T.日付=S.日付 and T.番号>=S.番号)
GROUP BY T.日付, T.番号, T.今日の走行距離
ORDER BY T.日付, T.番号;

使用方法ですが、まずAccessのクエリの頁で「新規作成」を実行します。「クエリの新規作成」のダイアログボックスで「デザインビュー」を選んでOK、続いて「テーブルの表示」のダイアログボックスが表示されますが、ここはそのまま「閉じる」を押します。メニューバーから「表示」ー「SQLビュー」を選びます。そこに SELECT; と表示されているのでこれを消して、先ほどのクエリーをここにコピーし、画面を閉じます。変更を保存しますかと聞いてくるのでここは「はい」、クエリーに適当な名前をつけます。
クエリーを開くと、結果が表示されます。このクエリーを基にしてレポートを作成すれば良いと思います。
お礼コメント
ichiro-ichiro

お礼率 33% (5/15)

どうもありがとうございました。丁寧に教えていただき、
これで私の求めていたものができそうです。
本当に勉強になりました。
投稿日時 - 2002-03-30 10:34:07
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ