- - PR -
最多取引先番号取得SQLの作り方を教えて下さい
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-10 10:54
品番ごとの最多取引先番号を取得する方法を調べています。
品番マスターテーブルのフィールドが「品番(PrimaryKey)・名称」 注文テーブルのフィールドが「注文番号(PrimaryKey)・品番・仕入先番号・・・・」 取得したいビューのフィールドは「品番・名称・最多仕入先番号」 最多取引先とは、注文テーブルに登録されている件数の最も多い仕入先番号です。 以下の部分まで書いて、手がとまってしまいました。 SELECT 品番, 仕入先番号 FROM 注文テーブル GROUP BY 品番, 仕入先番号; ORDER BY Count(注文番号) LIMIT 0, 1 これで全品番で最多仕入先番号を取得することはできそうなのですが、品番単位でこれを行い、品番マスターと結合させる方法がわかりません。 (追記) DBMSは、MySQLです。書いたつもりになっていました。ごめんなさい。 _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog 満員御礼 [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2007-09-10 13:14 ] | ||||||||||||||||||||
|
投稿日時: 2007-09-10 12:48
DBはなんですか?って、ぬしさんに聞くのもなんですが。
( SELECT 品番 , 仕入先番号 , COUNT(*) CNT FROM 注文テーブル ) のサブクエリを使って適当にゴニョゴニュすればよいのではないでしょうか? | ||||||||||||||||||||
|
投稿日時: 2007-09-10 12:55
DBMSは書きましょう。
たぶん、MySQLだとは思うけど... MySQLなら表式(Inline View)が使えたような気がしなたようなしないような。 したという前提で、
とでもしたら、よさげ 相変わらず未確認なので、どこかでSQLエラーは出るかもね。 | ||||||||||||||||||||
|
投稿日時: 2007-09-10 13:49
すみません。MySQL です。質問本文にも加筆しておきました。
その「適当にゴニョゴニョ」の内容をご教示いただけると助かります^^;
すみません。MySQL です。質問本文にも加筆しておきました。 (ひょっとして、LIMIT から MySQL と推測したのでしょうか?)
SQLエラーは良いのですが、この SQL の目的は注文数の最大値を件数から取得しているだけということになるような気がします。 _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog | ||||||||||||||||||||
|
投稿日時: 2007-09-10 14:01
「品番, 仕入先番号, 注文数」というビューと、
「品番, 最多注文数」というビューを結合して、 最多注文数の仕入先番号を取得する。という手順は如何でしょうか? 最多注文数が複数あるケースでは、複数件ヒットしてしまいますが。 ※以下検証していません。
| ||||||||||||||||||||
|
投稿日時: 2007-09-10 15:16
すまん、よく読んでなかった。 最大注文数は、比較のためだけに取得するものなので、 こあらさんの回答を元に、EXISTSにおいてみました
が二度出るのが、いや〜んな感じ。 共通表式(WITH〜)が使えれば、まとめれるけど、MySQLが対応しているかどうかは分かりません。
エスパーをなめてもらっては困る(大嘘) | ||||||||||||||||||||
|
投稿日時: 2007-09-10 16:18
すでに皆さんが回答されたので、かずくんさんの回答を元に、NOT EXISTSにおいてみました
まったく検証していないので、違ってたら無視してください。 パフォーマンスも良くなさそうですし。 でも、この手のSQLってよく掲示板で話題になりますね。 | ||||||||||||||||||||
|
投稿日時: 2007-09-10 19:28
こあらさん、エスパーかずくん、よっしーさん、ありがとうございました。
サンプルとしてアップしていただいた SQL は全て確認して理解できました。 最後のよっしーさんのところが一番難関でした。が、何とか理解できました。 (HAVING 句の符号は、逆ですよね?)
僕も含めてですが、SQL なロジックを組み立てる脳みそができあがっていない段階の人が多いのではないかと思います。 (そして、皆さんのサンプルを見て、目から鱗を落とす訳です) #実は、今朝の時点では、サブクエリー自身よくわからなかったりしたのです^^; _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog |