- PR -

SQL命令の記述に関して

1
投稿者投稿内容
KAR
会議室デビュー日: 2007/02/19
投稿数: 11
投稿日時: 2007-06-13 17:32
いつも大変お世話になっております。

現在考えているプログラムのDB読み出しに関しまして
SQL命令での行う事ができるかどうか
皆様のお知恵を貸して頂きたく、書込をさせて頂きました。

【案件プログラム概要】
まず、商品アイテムは[CLASS1]というカテゴリにて複数の種類に選別しております。
(野菜、果物と行った形です)
ある検索条件(商品価格やサイズなど)にて検索した結果を
[CLASS1]カテゴリ毎に「TOP5」を抽出したいのです。
つまり「野菜の価格TOP5」と「果物の価格TOP5」という形です。
「TOP5」以降の検索結果に関しては不要な為、切り捨てて問題ありません。

当然ながら、検索条件が厳しく「TOP5」に満たない場合には
表示できる商品アイテムのみ表示させます。

『例』
  果物       野菜  <=CLASS1
1.なし 120円  なす 120円
2.ぶどう100円  レタス 80円
3.りんご80円   ***** **円

以上です。

簡単な方法として、「CLASS1」毎にTOP5を抽出するSQL文を書いて
ループなりで繰り返し実行させれるのが簡単で良いのですが…
なにぶん処理が増えてしまいます。
そこで、出来れば一回で出来ないかと頭をフル回転させている所です。
もしも、良い案などございましたらご教授頂きますようお願い致します。
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-06-13 18:25
>現在考えているプログラムのDB読み出しに関しまして
>SQL命令での行う事ができるかどうか
できます。

まずは、どこまでできているのか明確にしてください。
忠犬
大ベテラン
会議室デビュー日: 2006/05/01
投稿数: 109
投稿日時: 2007-06-13 18:48
より具体的な質問をする場合は、使用するRDBMS、バージョンなどを明示してください。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2007-06-13 20:52
かつ テーブルの構造も必要
できるかどうかという質問ならできると思う
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-06-13 21:12
この前ブログに似たようなことを書きました。

http://blogs.wankuma.com/kacchan6/archive/2007/06/07/79946.aspx
参考になるでしょうか?
KAR
会議室デビュー日: 2007/02/19
投稿数: 11
投稿日時: 2007-06-14 10:36
>KOXさん
ご返答を頂きありがとうございます。どこまでと言われましても
現状にて行えているのは下記のようなSQL文だけです
SELECT * FROM ITEM WHERE CLASS1 IN(野菜,果物) ORDER BY PRICE
上記のようにCLASS1を選別し価格でソートしただけで
あとはプログラムで判断して表示をTOP5にしようと考えていました。

>忠犬さん
使用RDBMSは「Access2000」です。

>七味唐辛子さん
テーブル構造に関しては必要なりますか…。
申し訳ございませんが、今回の質問に使用したテーブルは
あくまで「例え」の仮DBの為、深く考慮しておりませんでした。申し訳ございません。

基本的な考えでは「CLASS1」というカテゴリにて商品を種類分けして
その種類ごとの順位を取得したかっただけだったのです。

>かつのりさん
かつのりさんのブログを確認させて頂きました。
なるほど、こういう簡単な方法でも取得できるのですね。
勉強させて頂きました。誠にありがとうございます。

このたびは多くの方にご教授頂きまして誠にありがとうございます。
こういう掲示板への質問などをあまり行った事がなく、いろいろと情報が少なく
ご迷惑をお掛け致しました。
かつのりさんから教えて頂きましたSQL文にてプログラムを行いたいと思います。
1

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