2016-05-08 15 views
-3

私は以下の助けや助言が必要です:SQLについてのアドバイスが必要

私は2つの列で1つのテーブルを持っています。

================================= 
ID   Name 
================================= 
================================= 
1   Denzel 
================================= 
2   Frozen 
================================= 
3   Lammer 
================================= 
4   James 
================================= 
5   James 
================================= 
6   Lolipop 
================================= 

"James"と同じ名前ですがIDは異なります。 私の質問「James」を取得する最善の方法は何ですか?ID番号:

私はcompareか??

更新

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

私は以下のようなコードを試しました。しかし、私はエラーが発生します。

Dim shape As String = ofd.FileName 
Dim fi As New IO.FileInfo(shape) 
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=dBase IV;Data Source='" _ 
& fi.DirectoryName & "'") 
cn.Open() 
Dim cmd As New OleDbCommand("select min(id) as materialid,material from Coverage group by material having count(*) > 1", cn) 
'Manual change 
'Dim cmd As New OleDb.OleDbCommand("Update Coverage set materialid=" & TextBox2.Text & " Where materialid=" & TextBox3.Text & "", cn) 
cmd.ExecuteNonQuery() 
cmd.Dispose() 
cn.Close() 

は、しかし、私は次のエラーを取得する:

値を必要なパラメータの1つ以上が欠落しているため。

何が欠けていますか?

ご協力いただきありがとうございます。

+0

任意のより多くのSQL質問されていないこと。あなたのVBコードに問題がある場合は、別の質問をしてください –

答えて

1

グループnameによって。 count()のような集計関数は、完全なテーブルではなく各グループに適用されます。これにより、複数回出現する名前を確認することができます。

select min(id) as id, 
     name 
from your_table 
group by name 
having count(*) > 1 
+0

トピックの更新を参照してください。 –

0

結果を得るためにRank()を使用できます。

select RANK() over(Order by Name) as ID,Name from TABLENAME 

は(ランクに関するいくつかの情報を持っている)

https://msdn.microsoft.com/en-in/library/ms176102.aspx

+0

OPがインスタンスSQLサーバを使用している場合... –

+0

が合意しました! SQLサーバーの場合はyesです。 – ViZ

関連する問題