- PR -

ある年度から現在までの全ての年度を取り出したいのです。

1
投稿者投稿内容
さよこ
ベテラン
会議室デビュー日: 2005/10/13
投稿数: 78
投稿日時: 2007-03-06 18:44
こんばんは。
テーブルの中から最も古い年度を取り出し、その年度から現在までの全ての年度を表示するようにしたいと思っています。
例えば、
年度
2001
2002
2005
2006
のように、抜けている年度があっても、
2001
2002
2003
2004
2005
2006
2007
となるようにしたいのです。
SQLでこのようなレコードを作るには、
どのようにすればよいのでしょうか。
DBはSQLServer2005です。
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-03-06 19:17
引用:

さよこさんの書き込み (2007-03-06 18:44) より:
こんばんは。
テーブルの中から最も古い年度を取り出し、その年度から現在までの全ての年度を表示するようにしたいと思っています。
例えば、
年度
2001
2002
2005
2006
のように、抜けている年度があっても、
2001
2002
2003
2004
2005
2006
2007
となるようにしたいのです。
SQLでこのようなレコードを作るには、
どのようにすればよいのでしょうか。
DBはSQLServer2005です。
よろしくお願いします。


SQLって、データを問い合わせる言語ですよね?
無いデータを、どうやって問い合わせるのでしょう?

ストアド組んでやれば出来ないことはないけど?
ぎんぎつね
常連さん
会議室デビュー日: 2007/03/06
投稿数: 22
投稿日時: 2007-03-06 20:09
引用:

さよこさんの書き込み (2007-03-06 18:44) より:
こんばんは。
テーブルの中から最も古い年度を取り出し、その年度から現在までの全ての年度を表示するようにしたいと思っています。
例えば、
年度
2001
2002
2005
2006
のように、抜けている年度があっても、
2001
2002
2003
2004
2005
2006
2007
となるようにしたいのです。
SQLでこのようなレコードを作るには、
どのようにすればよいのでしょうか。
DBはSQLServer2005です。
よろしくお願いします。




SQLServer2005が手元にないので私が良くやる方法のさわりを説明します。
例の場合でしたら、予め2001〜9999までの年度が入ったテーブルを作成し、
そのテーブルに対してSQLを投げます。
取り出したい年度の最小値/最大値は、WHERE句で絞ります。最小値はサブクエリを使って
本来取り出したいテーブルから取得し、最大値は現在時刻から取り出します。

ご参考までに

おっと誤字が・・・

[ メッセージ編集済み 編集者: ぎんぎつね 編集日時 2007-03-06 20:10 ]
さよこ
ベテラン
会議室デビュー日: 2005/10/13
投稿数: 78
投稿日時: 2007-03-07 09:41
ありがとうございます。
やはり難しいみたいですね。
結局、YEAR(MIN(年度))で最も古い年度を取り出し、
そこから現在の年度まで、SQLではなく、プログラムコードで値を入れることにしました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)