• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クエリで抽出したデータの累計)

データの抽出と累計の計算方法を教えてください

このQ&Aのポイント
  • 管理番号1のデータを抽出し、試験時間、累計、開始日付、終了日付を計算する方法を教えてください。
  • データから抽出した管理番号1のデータを使って、試験時間、累計、開始日付、終了日付を計算する方法が知りたいです。
  • データ抽出後の管理番号1の試験時間、累計、開始日付、終了日付の計算方法について教えてください。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.6

管理番号がテキスト型でしたらこちらで。 累計: DSum("試験時間","テーブル9","管理番号='" & [管理番号] & "' AND 開始日付 <= #" & [開始日付] & "#") 確認してみてください。

sun702
質問者

お礼

ありがとうございました。 助かりました。

その他の回答 (5)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

>やってみましたが、#ERRORになってしまいます。 以下のフィールドのそれぞれの型を教えてください。 管理番号  試験時間  開始日付  終了日付 たぶん型の違いが原因しているようなので。

sun702
質問者

補足

お世話をおかけします。 管理番号  試験時間  開始日付  終了日付 テキスト型 数値型  日付時刻型 日付時刻型 になってます。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

No3です。うっかりDBの種類が書いてないことに 気が付きませんでした。 一応、Accessかもしれない、ということでの回答です。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

選択クエリのフィールドが以下のようだとします。 管理番号  試験時間  開始日付  終了日付 まず、管理番号と開始日付の並び替えを昇順にします。 次に、新しいフィールドに以下を設定します。 テーブル名は実際に合わせて変更してください。 累計: DSum("試験時間","テーブル名","管理番号=" & [管理番号] & " AND 開始日付 <= #" & [開始日付] & "#") これで、管理番号別に開始日付毎の累計が表示されます。 質問の場合だとこのクエリをそのまま利用するならば、 管理番号の抽出条件に1を設定すれば、質問の結果が 得られます。

sun702
質問者

補足

ありがとうございます。 やってみましたが、#ERRORになってしまいます。 どこがダメなのでしょう。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

SQLの種類によりますね 汎用性をだすならランク付けをして、ランクの低いデータをsumするのでしょうけど mysqlあたりなら変数で加算していけばいいような気もします

sun702
質問者

お礼

ありがとうございました。

  • hmyrw
  • ベストアンサー率40% (2/5)
回答No.1

分析関数を使って、並び順を開始日付にするならこんな感じですかね? select 管理番号, 試験時間, sum(試験時間) over(partition by 管理番号 order by 開始日付) as 累計, 開始日付, 終了日付 from XXX where 管理番号=1 違ってたらごめんなさい

sun702
質問者

お礼

ありがとうございました。