我需要以下帮助或建议:
我有一个包含2列的表。
=================================
ID Name
=================================
=================================
1 Denzel
=================================
2 Frozen
=================================
3 Lammer
=================================
4 James
=================================
5 James
=================================
6 Lolipop
=================================
正如您所见,“James”具有相同的名称但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 :(得分:1)
name
分组。然后像count()
这样的聚合函数适用于每个组,而不是整个表。有了它,您可以检查多次出现的名称。
select min(id) as id,
name
from your_table
group by name
having count(*) > 1
答案 1 :(得分:0)
您可以使用Rank()来获得结果。
select RANK() over(Order by Name) as ID,Name from TABLENAME
有关于Rank()的一些信息