プロが教える店舗&オフィスのセキュリティ対策術

以下のACCCESSテーブルデータがあります。


ID    利用日 利用回数 利用金額
c0096 2013/10/02 1   2000
c0096 2013/10/04 2   3000
c0096 2013/10/11 3   4000
c0096 2013/11/11 4   2200
c0096 2013/11/22 5   1000
c0096 2013/12/02 6 4000
c0135 2013/12/03 1 2100
c013 52013/12/07 2 4100


これをIDがかぶっているものについては1行とし、

かつ以下、

・直近利用日
・利用回数・・・同一ID行数で判断
・利用金額・・・累積額
・経過日数・・・yyyymmdd - 直近利用日


※ yyyymmdd はクエリー実行時に入力する



の条件でクエリー抽出したいのですが、可能でしょうか。
(SQL使用を希望)

※難しければ経過日数の箇所はなくても構わないです。


イメージ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

yyyymmdd を パラメーターで、 2013/12/10 とした場合


ID 直近利用日 利用回数 利用金額   経過日数
c0096 2013/12/02 6 16200     8
c0135 2013/12/07 2 6200 3



上記となる。


またテーブルについて、上記以外にも列があった場合、基本全列を
表示させるという指示は組めますでしょうか。

お手数をおかけしますmm



関連する内容
http://oshiete.goo.ne.jp/qa/8768143.html

A 回答 (2件)

クエリで書くと、こう。



SELECT テーブル.ID, Max(テーブル.利用日) AS 直近利用日, Max(テーブル.利用回数) AS 利用回数, Sum(テーブル.利用金額) AS 利用金額合計, Min(DateDiff("d",[利用日],DateValue([yyyymmdd]))) AS 経過日数
FROM テーブル
GROUP BY テーブル.ID;

パラメータのyyyymmddには「2013/12/10」のように、区切り記号付きの日付を入力。

この回答への補足

●●● 確認!! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

ありがとうございます。エクセルで日付-日付でみると、1日多いのですが、これはエクセルが誤りでしょうか。


クエリー: 2014/09/27でパラメーターを指定  2014/05/13 が直近日付 = 137



エクセル: 2014/09/27とセルに入力 そこから右記のセルを引く 2014/05/13 が直近日付 = 136


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

補足日時:2014/09/26 18:47
    • good
    • 0
この回答へのお礼

丁寧に本当にありがとうございます。両方とも試します。

お礼日時:2014/09/26 18:11

集計クエリにして



・ID

グループ化

・直近利用日

利用日の最大値

・利用回数・・・同一ID行数で判断

利用回数の最大値

・利用金額・・・累積額

利用金額の合計

・経過日数・・・yyyymmdd - 直近利用日

「yyyymmdd - 直近利用日」の式の結果の最小値

にすれば良いだけです。
    • good
    • 0
この回答へのお礼

ありがとうございます。SQLよりこちらの方がおすすめですか。

お礼日時:2014/09/26 17:46

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