- PR -

基準から○件のデータを表示するには

1
投稿者投稿内容
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-03-08 20:45
VB.NET2005 エクスプレスでデータを表示するプログラムを作っています。
データベースはアクセスです。

WindowsフォームにDateTimePickerが配置されており、それを基準にして、
列(日付)の過去何件分かをデータグリッドビューに表示させたいのですが、
列(日付)は、毎日のデータではなく、ない日付もあるので
どうしたらよいものかと考えております。

データはデータセットからBindingsourceを経由してとっています。
検索もしましたが、見つかりませんでした。
よろしくお願い致します。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-08 21:04
こんにちは。

SELECT TOP n 列
FROM テーブル
WHERE 日付列 <= 日付のパラメータ
ORDER BY 日付列 DESC

こんな感じのクエリでいけるんじゃないでしょうか。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2006-03-10 10:31
日付が不連続ということなので、

select hoge from テーブル where ユニークキー in (select top 5 ユニークキー from テーブル where 日付 <= 基準日 order by 日付 desc)

みたいな感じでいけると思います。ユニークキーは当然ありますよね?(^^;
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-03-10 14:10
ue様、 trapemiya様
書き込みありがとうございます。
現状 ue様の方法のクエリを
http://www.atmarkit.co.jp/fdotnet/special/win20review02/win20review02_03.html
を参考に頑張って作っております。
trapemiya様のユニークキーは知識がなくわからないので、
調べさせてください。

初心者ゆえ、時間がかかりますが、よろしくお願い致します。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2006-03-10 16:33
引用:

だんくさんの書き込み (2006-03-10 14:10) より:
trapemiya様のユニークキーは知識がなくわからないので、
調べさせてください。


キーである必要はないですね。すみません。勢いで書いてしまいました。
正確には、「ユニークな値を持つ列」の方が適切な表現ですね。
すみません。m(_ _)m
ただ、通常はそういう列はキーであるケースが多いと思います。
だんく
常連さん
会議室デビュー日: 2006/02/06
投稿数: 47
投稿日時: 2006-03-12 03:18
ue様の方法で無事できました。ありがとうございます。
クエリ(Fillby)はすぐできたのですが、
パラメータの設定をコードで行うようにしようとして
時間がかかってしまいました。
ありがとうございます。

trapemiya様 ユニークキーというのは、アクセスでいう主キーの
事だったんですね。知識不足ですいません。
trapemiya様のSQL文勉強になりました。
ありがとうございます。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2006-03-12 22:32
引用:

だんくさんの書き込み (2006-03-12 03:18) より:

trapemiya様のSQL文勉強になりました。
ありがとうございます。


すみません。私、何かすごく勘違いしてました。混乱させてごめんなさい。
たぶん、頭の中で、

select hoge from テーブル where fuga in (select top 5 moge from fooTable where 日付 <= 基準日 order by 日付 desc)

みたいなことを考えていたんだと思います。m(_ _)m

1

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