Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用LINQ跨多个列选择重复行_Sql_Vb.net_Linq - Fatal编程技术网

Sql 使用LINQ跨多个列选择重复行

Sql 使用LINQ跨多个列选择重复行,sql,vb.net,linq,Sql,Vb.net,Linq,我试图在数据库中跨多个列查找重复行 下面的SQL查询给出了247行的结果 select Lastname, EmailAddress, count(*) from leads where EmailAddress IS NOT null and isDeleted <> 'True' group by lastname, emailaddress having count(*) > 1 选择姓氏、电子邮件地址、计数(*) 来自EmailAddress不为null且被删除

我试图在数据库中跨多个列查找重复行

下面的SQL查询给出了247行的结果

select Lastname, EmailAddress,  count(*) 
from leads where EmailAddress IS NOT null and isDeleted <> 'True' 
group by lastname, emailaddress having count(*) > 1
选择姓氏、电子邮件地址、计数(*)
来自EmailAddress不为null且被删除为“True”的Lead
按姓氏分组,电子邮件地址的计数(*)大于1
我认为vb.net中的以下内容应该返回相同数量的行,但是我得到了201个结果

  Dim duplicates = db.Leads.Where(Function(p) p.EmailAddress <> Nothing
  And p.isDeleted <> True)
 .GroupBy(Function(i) New With {i.EmailAddress, i.LastName})
 .Where(Function(g) g.Count() > 1)
 .[Select](Function(g) g.Key)
Dim duplicates=db.Leads.Where(函数(p)p.EmailAddress Nothing
和p.isDeleted True)
.GroupBy(函数(i)带有{i.EmailAddress,i.LastName}的新函数)
.Where(函数(g)g.Count()>1)
[选择](功能(g)g键)
它们是否都返回相同数量的行?

尝试以下语法:

Dim duplicates = From p In db.leads Where
                 p.EmailAddress <> Nothing And
                 p.isDeleted <> True Group By
                 p.EmailAddress, p.LastName Into 
                 grp = Group Where (grp.Count() > 1)
Dim duplicates=从p到db.leads,其中
p、 电子邮件地址没有和
p、 按组删除真值
p、 电子邮件地址,p.LastName输入
grp=组,其中(grp.Count()>1)

您分组依据的列在每个查询中都会反转。在SQL查询中,有lastname和emailaddress,然后在linq中有emailaddress和lastname。