![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
SQLについて質問させてください。
年 月 売上
------------
2003 4 100
2003 5 200
2002 4 300
上記のようなテーブルがあるばあい
年 月 売上 前年
-----------------
2003 4 100 300
2003 5 200 0
2002 4 300 0
このような結果(前年、同月の売上の数値を
前年列に表示)を得るための View を
作成したいのですが、どうしたら
よいでしょうか。
データベースは Sybase です。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
自己結合を使えばできるでしょう。
SELECT ・・・・ FROM A表 Left Join A表 As 前年
ON A表.年月 = 1年加算(前年.年月)
ポイント(注意点)は
(1) Inner Join ではなく、Left Joinを使用する。(前年のレコードがない場合でもレコードを抽出するため)
(2) 同一の表を別の表として扱うため、エイリアスする。
(3) 結合条件は、単純に A表.年月 = 前年.年月 ではなく、1年加算(または減算)した値で結合する。
日付を加算する関数は、DBMSに依存すると思いますので、ご使用のDBMS(Sybase)でご確認ください。
ありがとうございます。
今、Sybaseの環境がないので
Oracleで試してみましたが大丈夫そうです。
ありがとうございました。
No.2
- 回答日時:
このような単純なテーブルを想定していますが
------------------
Table : SALES
year num
month num
uriage num
-------------------
同じテーブルを別名で参照して、連結すれば希望の表示が得られませんか?
下のselect文では Fromの中で"L"として定義しています。
-------------------------------
SELECT sales.year, sales.month, sales.uriage,l.uriage
FROM sales, sales l
where sales.year=l.year+1 and sales.month=l.month;
-------------------------------
ありがとうございます。
具体的にSQLで示してもらったので
わかりやすかったです。
補足のLeft Joinについても理解できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
固定値を含む結合と複数テーブ...
-
SET句内で複数の条件を指定して...
-
SQLの書き方(チェックボックス)
-
SELECTの結果で同一行を複数回...
-
select句副問い合わせ 値の個...
-
MERGE文を単体テーブルに対して...
-
SQL抽出の書き方について(一部...
-
他のテーブルを参照した値はupd...
-
nullと文字数について
-
oracleの分割delete
-
和集合と積集合の違いが知りた...
-
Oracleでの文字列連結サイズの上限
-
Excelでセルの書式設定を使用し...
-
【MYSQL】asでリネームしてwher...
-
差し込み印刷のレコード数について
-
実績累計の求め方と意味を教え...
-
Accessで別テーブルの値をフォ...
-
access 自動採番 「10-AA-000...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
-
外部結合とor条件混在の記述方法
-
固定値を含む結合と複数テーブ...
-
SQLの書き方(チェックボックス)
-
他のテーブルを参照した値はupd...
-
複数テーブルのMAX値の行データ...
-
SQL GROUPで件数の一番多いレコ...
-
oracleの分割delete
-
unionの結果は集計はできないで...
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
集計後の数値が倍になる
-
COUNTの取得方法(?)について...
-
DELETE 文とEXISTSの使い方につ...
-
updateの一括実行
-
結合と副問い合わせの違い
おすすめ情報