- ベストアンサー
データの抽出と累計の計算方法を教えてください
- 管理番号1のデータを抽出し、試験時間、累計、開始日付、終了日付を計算する方法を教えてください。
- データから抽出した管理番号1のデータを使って、試験時間、累計、開始日付、終了日付を計算する方法が知りたいです。
- データ抽出後の管理番号1の試験時間、累計、開始日付、終了日付の計算方法について教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
管理番号がテキスト型でしたらこちらで。 累計: DSum("試験時間","テーブル9","管理番号='" & [管理番号] & "' AND 開始日付 <= #" & [開始日付] & "#") 確認してみてください。
その他の回答 (5)
- piroin654
- ベストアンサー率75% (692/917)
>やってみましたが、#ERRORになってしまいます。 以下のフィールドのそれぞれの型を教えてください。 管理番号 試験時間 開始日付 終了日付 たぶん型の違いが原因しているようなので。
補足
お世話をおかけします。 管理番号 試験時間 開始日付 終了日付 テキスト型 数値型 日付時刻型 日付時刻型 になってます。
- piroin654
- ベストアンサー率75% (692/917)
No3です。うっかりDBの種類が書いてないことに 気が付きませんでした。 一応、Accessかもしれない、ということでの回答です。
- piroin654
- ベストアンサー率75% (692/917)
選択クエリのフィールドが以下のようだとします。 管理番号 試験時間 開始日付 終了日付 まず、管理番号と開始日付の並び替えを昇順にします。 次に、新しいフィールドに以下を設定します。 テーブル名は実際に合わせて変更してください。 累計: DSum("試験時間","テーブル名","管理番号=" & [管理番号] & " AND 開始日付 <= #" & [開始日付] & "#") これで、管理番号別に開始日付毎の累計が表示されます。 質問の場合だとこのクエリをそのまま利用するならば、 管理番号の抽出条件に1を設定すれば、質問の結果が 得られます。
補足
ありがとうございます。 やってみましたが、#ERRORになってしまいます。 どこがダメなのでしょう。
- yambejp
- ベストアンサー率51% (3827/7415)
SQLの種類によりますね 汎用性をだすならランク付けをして、ランクの低いデータをsumするのでしょうけど mysqlあたりなら変数で加算していけばいいような気もします
お礼
ありがとうございました。
- hmyrw
- ベストアンサー率40% (2/5)
分析関数を使って、並び順を開始日付にするならこんな感じですかね? select 管理番号, 試験時間, sum(試験時間) over(partition by 管理番号 order by 開始日付) as 累計, 開始日付, 終了日付 from XXX where 管理番号=1 違ってたらごめんなさい
お礼
ありがとうございました。
お礼
ありがとうございました。 助かりました。