アプリ版:「スタンプのみでお礼する」機能のリリースについて

管理番号  試験時間  開始日付  終了日付
  1     24 2012/1/1   2012/1/2
2 48 2012/1/1 2012/1/3
1 24 2012/1/2 2012/1/3
 2 48 2012/1/3 2012/1/5
3 24 2012/1/1 2012/1/2

こういうデータから例えば、管理番号1を抽出して
管理番号  試験時間  累計  開始日付  終了日付
  1 24 24 2012/1/1 2012/1/2
1 24 48 2012/1/2 2012/1/3

となるようにしたいのですが、
どなたか教えていただけませんでしょうか。
よろしくお願いします。

A 回答 (6件)

管理番号がテキスト型でしたらこちらで。



累計: DSum("試験時間","テーブル9","管理番号='" & [管理番号] & "' AND 開始日付 <= #" & [開始日付] & "#")

確認してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/16 17:27

>やってみましたが、#ERRORになってしまいます。



以下のフィールドのそれぞれの型を教えてください。

管理番号  試験時間  開始日付  終了日付

たぶん型の違いが原因しているようなので。

この回答への補足

お世話をおかけします。

管理番号  試験時間  開始日付  終了日付
テキスト型 数値型  日付時刻型 日付時刻型

になってます。

補足日時:2012/12/15 15:28
    • good
    • 0

No3です。

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

選択クエリのフィールドが以下のようだとします。



管理番号  試験時間  開始日付  終了日付

まず、管理番号と開始日付の並び替えを昇順にします。
次に、新しいフィールドに以下を設定します。
テーブル名は実際に合わせて変更してください。

累計: DSum("試験時間","テーブル名","管理番号=" & [管理番号] & " AND 開始日付 <= #" & [開始日付] & "#")


これで、管理番号別に開始日付毎の累計が表示されます。
質問の場合だとこのクエリをそのまま利用するならば、
管理番号の抽出条件に1を設定すれば、質問の結果が
得られます。

この回答への補足

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

補足日時:2012/12/13 20:06
    • good
    • 0

SQLの種類によりますね



汎用性をだすならランク付けをして、ランクの低いデータをsumするのでしょうけど
mysqlあたりなら変数で加算していけばいいような気もします
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/13 19:57

分析関数を使って、並び順を開始日付にするならこんな感じですかね?


select
管理番号,
試験時間,
sum(試験時間) over(partition by 管理番号 order by 開始日付) as 累計,
開始日付,
終了日付
from XXX
where 管理番号=1

違ってたらごめんなさい
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/13 19:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す