2017-01-12 1 views
0

実行時にアクセスデータベース内のテーブルを通過し、最も低い数値を見つけるアルゴリズムを作成しようとしています(= 1)。わかりやすくするために、これはレコードのIDであるため、Autonumber関数をアクセス内で使用すると必要な作業は実行できません。(VB.NET 2010)最も未使用の番号を選択するSQLクエリを書く方法

たとえば、IDが1と3のレコードがある場合、アルゴリズムは "2"を検出して、後で使用できる2の値を返します。

申し訳ありませんが、私は置くことができるサンプルコードはありませんが、Microsoft Visual Studio 2010を使用しており、データベースとの接続を提供するためにOledbシステムでVB.NETでプログラミングしています。

ありがとうございました。

編集:私はSORTクエリを使用することを検討していましたが、私はそれをどのようにフォローアップするのか分かりません。だから、これまで非常に初歩的なことだろうが、私はアルゴリズムを始めることができる:

SELECT StudentID FROM Students 
ORDER BY StudentID; 

私はこれを行うことによって、私はIDに自分自身を見つけるために、ユーザーを取得し、それを設定することができると仮定し、それが敗北します学生データを追跡するための自動化されたシステムを提供するための私のアプリケーションの目的。

+0

同じ解決策を探しているかもしれません:[ここにリンクの説明を入力してください](http://stackoverflow.com/questions/1320448/how-to-find-unused-id-in-a-column ) – Steven

+0

@スティーブンええ、そうです。あらかじめ研究していたときに、その質問を見つけることができませんでした。ありがとうございました! –

答えて

0
select min(StudentID) + 1 
from Students s1 
where not exists (select 1 from Students s2 
        where s2.StudentID = s1.StudentID + 1) 
+0

"t1"の意味は何ですか?それは列名を意味しますか? –

+0

t1とt2はテーブルエイリアスです。 – jarlh

+0

"StudentID"という名前のIDと "Students"というテーブルを持つ私の列には、学生t1から選択した分(StudentID)+1があります。 t2.StudentID = t1.StudentID + 1) '? –

関連する問題