2016-05-08 244 views
-3

我需要以下幫助或建議:需要一些關於sql的建議

我有一個2列的表。

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

正如你可以看到「詹姆斯」具有相同的名稱,但ID不同。 我的問題什麼是得到「詹姆斯」的最佳途徑也是ID 4.

我應該使用比較還是?

更新!

謝謝你的幫助。

我嘗試了下面的代碼。但我確實得到一個錯誤。

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() 

,但我得到以下錯誤:

值的一個或多個必需的參數丟失。

我在想什麼?

非常感謝您的幫助。

+0

一些信息,這不是一個SQL的問題了。如果你的VB代碼有問題,然後問一個單獨的問題 –

回答

1

集團由name。然後聚合函數如count()適用於每個組,而不是整個表。有了這個,你可以檢查不止一次的名字。

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

請參閱我的主題請更新, –