具有联接和计数的快速linq查询

灯光技术员

如果从Jobs表包含超过200万条记录的Oracle数据库中的TOAD执行,我有这个SQL查询工具正在快速运行。

select * from Technicians  A
left join  
  (select TechnicianCode,count(*)JobCount from Jobs 
   where TxnCode in ('Jc','Jcd') group by TechnicianCode) B
on B.TechnicianCode =A.TechnicianCode

无法将其有效转换为linq。有人可以帮忙吗?

萨西耶斯

你可以试试这个

var txnDetails =  from job in jobs
                  where job.TxnCode == "Jc" || job.TxnCode == "Jcd"
                  group job by job.TechnicianCode into g
                  select new { TechnicianCode = g.Key, count = g.Count() };

然后您可以使用join进行常规选择

 from technician in Technicians
 join txn in txnDetails on technician.TechnicianCode equals 
   txn.TechnicianCode into tg
 from t in tg.DefaultIfEmpty()
 select new {Count = t==null? 0: t.count, ...}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章