- - PR -
同一テーブルから日付の違うものの集計をとるには
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-02-14 18:37
テーブルA
YMD |あいう|えお|かきく| --------------------------------------------------------------- 2004/01/01 |abc |aa |bb | 2004/01/01 |abc |a1 |bFF | 2004/01/01 |abc |aa |bb | 2004/01/01 |abc |a1 |bFF | 2004/01/02 |ab |aa |bb | 2004/01/04 |ab2 |aa |bcc | 2004/01/02 |ab |aa |bb | 2004/01/04 |ab2 |aa |bcc | 2004/01/06 |a11 |aa |bc | 2004/01/06 |a11 |aa |bc | 2004/01/06 |a11 |aa |bc | 2004/01/06 |a11 |aa |bc | こういったテーブルから テーブルB YMD |あいう|えお|かきく|カウント|前年度YMDカウント --------------------------------------------------------------- 2004/01/01 |abc |aa |bb |10 |80 2004/01/01 |abc |a1 |bFF |2 |20 2004/01/02 |ab |aa |bb |1 |40 2004/01/04 |ab2 |aa |bcc |5 |20 2004/01/06 |a11 |aa |bc |10 |30 ↑ ここにはちょうど一年前のカウントを入れる 項目すべてにおいてグループ化されているものとするSQLはどのようにしたらいいでしょうか?? テーブルA同士を結合して1年前の日付のものだったらカウントするみたいな方法のほうがいいでしょうか?できれば簡単なSQLをつけて説明していただければ幸いです。 どなたかよろしくお願いします。 [ メッセージ編集済み 編集者: kazurock 編集日時 2005-02-14 18:45 ] |
|
投稿日時: 2005-02-14 21:35
こんな感じでどうでしょう?
今、時間が無いので詳細な説明は省略させてください。 create view tmpst_v as select YMD, あいう, えお, かきく, count(*) as カウント, add_months( YMD, -12 ) as 去年のYMD from テーブルA group by YMD, あいう, えお, かきく ; select a.YMD, a.あいう, a.えお, a.かきく, a.カウント, nvl(b.カウント,0) from tmpst_v a left outer join tmpst_v b on ( a.去年のYMD = b.YMD and a.あいう = b.あいう and a.えお = b.えお and a.かきく = b.かきく ) order by a.YMD; |
|
投稿日時: 2006-10-10 14:42
相関サブクエリ
LAG |
1