2016-05-08 192 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

请参阅我的主题请更新, –