• 締切済み

N番目に大きい

table1には社員NO,評価ポイントの列があり過去3年分のデータが入っています。社員NOが1000以下で 評価ポイントが最高のポイントとその社員NO、 評価ポイントがN番目に大きいポイントとその社員NO、を一度に求めるSLQは可能でしょうか。 table1 社員NO 評価 100 1 200 2 300 5 400 8 500 3 900 4 1000 6 1100 7 1200 5 100 2 200 3 300 5 400 6 500 7 900 5 1000 3 1100 2 1200 1 結果 最高 社員NO 400 評価 8 2番目 社員NO 500 評価 7 環境windows 2000 sql server

  • obone
  • お礼率51% (111/215)

みんなの回答

回答No.1

SQL Server 2000ですか? ユニークなキーはないのですか? ここには書かれていませんが、年+社員NOでユニークになるのですか? 評価が同じデータがあった場合は、どうするのですか?

obone
質問者

補足

説明不足ですみません。 現状キーはありません。 年情報はテーブルにはありません。 評価が同じデータはない条件です。 今は300人分のデータがランダムに入っている状態です。

関連するQ&A

  • 下記の事を行うSQLがわかりません。

    下記の事を行うSQLがわかりません。 テーブルAに名前の列と評価の列があります。 データは過去10年間の月毎の評価(1~5)です。 名前列には150人の登録者の名前が10年間の月の数だけ入っています。抽出したいのは評価が5を取っていない者の氏名です。 例 --------------------- 一朗 2 次郎 3 一朗 1 次郎 4 環境はwindows2000,Access2000です。 SQL始めたばかりなのでご指導おねがいします。

  • SQLの質問です。

    SQLの質問です。 Access2003でのデータ操作で、 (1)2つのテーブルから一部列でのデータ重複があるものを除き、全件抽出 (2)テーブルは dテーブル No、販売先、日時、評価、金額 mテーブル 販売先(主キー)、店舗名 この二つのテーブルから全データを出力、ただし同じNoが重複しているデータは評価がA~Dのもの中で(E~F、空もある)日時が最新のもののみ出力をしたいのですが、教えていただけませんでしょうか、お願いします。

  • update文で改行を入れる

    こんにちは。 いつもお世話になっています。 update文を使用して、データに改行を入れたいのですが、どうすればよいでしょうか。 対象列のデータ型はVARCHAR2です。 例えばSQLPLUSから、 SPL>update 「テーブル名」set 「対象列」='あ改行い改行う改行' を投入し、そのあと select 「対象列」 from 「テーブル名」 とすると SQL>あ SQL>い SQL>う と出てくればよいんですが、 SQL>update 「テーブル名」set 「対象列」='あ\nい\nう\n' としても SQL>あ\nい\nう\n と、「\n」が文字列としてでてきてしまいます。 SPL>update 「テーブル名」set 「対象列」='あ 2い 3う' と投入すると、期待通りになるのですが、 そうではなく一行にまとめたいのですがどうすれば良いでしょうか。 Oracle9iを使用しています。 宜しくお願いいたします。

  • SQL2005 で 複数列でのユニークの仕方

    SQL Server2005 Expressを使っているのですが。 下記のような3列の項目からなるテーブルがあり、ABCはそれぞれ数字として。 No1,No2,No3 A, B, A, F, B, C, B, F, B, , C, E, F 数字をユニークし、結果を A,B,C,E,F としたいのですが。 列(No1)だけでのユニークでよいなら Select Distinct(No1) ・・・・・ と書けばよいのでしょうが。 現在は、各列でユニークし、配列にいれて重複は削除するやり方をしているのですが。 この例では3列ですが実際は5列以上あります。 SQLでスマートなやり方はないでしょうか?

  • SQL2005 のクエリ文について

    いつもありがとう御座います(ご回答いただいた皆様)。 ちょっと悩んでおりますので何かヒントを頂けたら・・・よろしくお願いします。 テーブルAに「会員No」と「来店ポイント」、という列があったとします。 テーブルBにも「会員No」と「来店ポイント」があったとします。 AB両方の会員Noは=です。 テーブルAの「来店ポイント」が間違っているので、テーブルBの「来店ポイント」と 差し替えたいのですが、どの様なクエリになるのでしょうか? 自力で何とかなるかな、、と思い2時間ほど粘りましたが、上手くいかないので・・・ (中堅外食チェーンの板前をしてますが、何故かサーバ管理者までしてます。 若いというだけで・・・そんな環境なので聞ける人も居らず、いつもここが頼りになってます。 すみません) 何卒、よろしくお願いします。

  • 一般的なSQLでの処理

    SQL初心者なのでお教えください。 テーブルAに部課名,社員NO,入室時刻,退室時刻のデータがあり部課名単位でセレクトした結果を 社員NO単位で処理したいのですが、一般的にはどのような手順(SQL)でするのでしょうか。 テーブルA |部課名|社員NO|    入室時刻 |  退室時刻 | |A |11111 |2006/01/01 8:10:00| 2006/01/01 9:10:00| |A |11114 |2006/01/01 8:15:00| 2006/01/01 9:15:00| |A |11112 |2006/01/01 8:30:00| 2006/01/01 9:30:00| |A |11112 |2006/01/01 8:50:00| 2006/01/01 9:50:00| |A |11111 |2006/01/01 10:10:00| 2006/01/01 12:10:00| |A |11113 |2006/01/01 6:10:00| 2006/01/01 7:10:00| |A |11111 |2006/01/01 13:10:00| 2006/01/01 14:10:00| 社員NO 11111さんのみの結果を作りたい(特定期間に何回入室したか等) 使用OS Windows 2000,VisualBasic 2005

  • 重複していないレコードの抽出方法について

    下記のテーブルの中で、 no1 フィールドが重複していない列(この場合ですが、200003のみ)を抽出したいのですが、どのような sql 文を書けば良いか分かりませんでした。 その為、このような場合、どのような sql 文を書けば良いかご存知の方がいらっしゃいましたら、 ご教示の程、よろしくお願いします。 【w_tblテーブル】 ―――――――――― |key| no1 |no2| ―――――――――― |1 |200001|1 | |2 |200002|1 | |3 |200001|2 | |4 |200002|2 | |5 |200001|3 | |6 |200003|2 | ―――――――――― 【SQL文】 SELECT `no1` FROM `w_tbl` 【結果】 200001 200001 200001 200002 200002 200003 【SQL文】 SELECT DISTINCT `no1` FROM `w_tbl` 【結果】 200001 200002 200003 【SQL文】 ※※※ここの書き方が分かりません。※※※ 【結果】 200003 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQL Server2000+VS.NETで画像をweb表示したい

    環境はWIN2K Server + SQLServer2000でイントラネットを組んでいます。開発はVS.NET2003 Professionalで行っています。SQL Serverに社員の顔写真をSQL Serverで保存(列属性は列名:顔写真 データ型:image 長さ:16)してあります。 顔写真のSQLサーバーへの保存は、ACCESSでフォームを作成し、アクセスのフォームへペーストしてSQLサーバーへ保存しています。 この環境で、社員名簿をイントラネットでwebで作ったのですが、氏名、所属などのデータは当然表示できるのですが、顔写真の表示をWebformで出来ません。どなたか、やり方がわかる方、教えてください。

  • transact-sqlからoracle DBを参照したい。

    transact-sqlからoracle DBを参照したい。 sql-server 2005 window server 2003 R2での環境です。transact-sqlを使用して、他のマシン上にあるoracle データベース上のテーブルのデータを取得し、そのデータを自身のマシン上のsql serverのテーブルに格納したいのですが、そのようなことはできますでしょうか。 もし、できるとすれば、どのような方法(手順)になるのでしょうか。

  • アクセスADOで更新クエリがエラーになる

    アクセスからYES/NO型をを含むテーブルをSQLサーバーへ移行したのですが アクセスから更新クエリを使ってYES/NO型のフィールドを全てFalseにしたいのですがエラーになってしまいます。 cn.Execute "UPDATE テーブル SET 返事 = False" このコードを アクセスからADOを使ってアクセスのテーブルに対して行えば問題なくできるのですが そのままSQLサーバーのテーブルに対して実行すると 「列名'False'が無効です」 となります。 そもそも列名は「False」ではなく「返事」です。 SQLサーバーでのデータ型は「bit」になっています。 何かわかる方御回答よろしくお願いします。