2014-01-17 22 views
0

請幫忙SQL查詢LINQ轉換,轉換SQL組

select top(1) AgentID 
from Leads l 
inner join LeadDetails ld on l.LeadID = ld.LeadID 
where ld.PropertyShown = 0 
group by AgentID 
order by COUNT(AgentID) 

有沒有將任何工具?

回答

0

LINQPad將LINQ轉換爲SQL,但不是其他方式。

這個問題linqpad-convert-sql-to-linq也問如何從SQL轉換爲LINQ語法。

以下是我如何手動完成的;我將其輸入LINQPad進行測試 -

// Test data 
    var Leads = new []{new {LeadID=1,AgentID="John"},new {LeadID=2,AgentID="Jane"}}; 
    var LeadDetails = new []{new {LeadDetailId=1,LeadID=1,PropertyShown=0},new {LeadDetailId=2,LeadID=1,PropertyShown=0},new {LeadDetailId=2,LeadID=2,PropertyShown=0}}; 

var topAgentId = 
(from l in Leads 
join ld in LeadDetails on l.LeadID equals ld.LeadID 
where ld.PropertyShown == 0 
group l by l.AgentID into agentGroup 
orderby agentGroup.Count() ascending // or descending if you want the agent with the most leads 
select agentGroup.Key).FirstOrDefault(); 

topAgentId.Dump();