如何在VB.NET中编写此SQL查询LINQ
问题描述:
如何在VB.NET LINQ中编写此SQL查询?如何在VB.NET中编写此SQL查询LINQ
SELECT COUNT(*) AS COUNT_NO
FROM A INNER JOIN B ON A.ID = B.ID
WHERE A.SERIAL_NO IN (SELECT MAX (A.SERIAL_NO)
FROM A INNER JOIN B ON A.ID = B.ID
GROUP BY A.SUBJECT_ID)
AND B.STATUS = 'N';
感谢
答
好了,直接合理的C#转换会是这样的:
var validSerialNumbers = from a in dbContext.A
join b in dbContext.B on a.ID equals b.ID
group a.SerialNo by a.SubjectId into g
select g.Max();
var query = from a in dbContext.A
join b in dbContext.B on a.ID equals b.ID
where validSerialNumbers.Contains(a.SerialNo)
where b.Status == "N"
select new { a, b };
var count = query.Count();
我会想象你可以进行转换的VB非常相似。不幸的是,Reflector在这个方面做得不好,但是就我所知,这些条款应该换算为1。
+0
感谢它正在工作现在.... –
查询中“group by”的用法是什么? –