2013-09-24 2 views
1

У меня есть Sql Query как:Sql запросов к Linq с использованием IN

select distinct FROM_EMAILID,FROM_COUNTRY from SURVEY_VISITORS 
where FROM_COUNTRY IN 
(
    select top 1 FROM_COUNTRY as FROM_COUNTRY from SURVEY_VISITORS 
    where FROM_COUNTRY<>'undefined' 
    group by FROM_COUNTRY order by COUNT(*) desc 
) 

Я не в состоянии справиться с IN Оператора.
Любая помощь будет принята с благодарностью.

Для суб-запроса, я попробовал этот путь:

var innerQuery = (from t in VDC.SURVEY_VISITORS 
          group t by new 
          { 
           t.FROM_COUNTRY 
          } into g 
          orderby 
          g.Count() descending 
          select new 
          { 
          VisitorCount = (Int64?)g.Count(), 
          Country = g.Key.FROM_COUNTRY 
          }).FirstOrDefault(); 
+0

Я получил результат :) уаг результат = (от хх в VDC.SURVEY_VISITORS где innerQuery.Country. Содержит (xx.FROM_COUNTRY) выбрать новый { xx.FROM_COUNTRY, xx.FROM_EMAILID }) Distinct() ToList()..; – RealSteel

ответ

0
var innerQuery = (from t in VDC.SURVEY_VISITORS 
        group t by new 
        { 
        t.FROM_COUNTRY 
        } into g 
        orderby 
        g.Count() descending 
        select new 
        { 
        VisitorCount = (Int64?)g.Count(), 
        Country = g.Key.FROM_COUNTRY 
        }).FirstOrDefault(); 

var result = (from xx in VDC.SURVEY_VISITORS 
            where ((innerQuery.Country.Contains(xx.FROM_COUNTRY)) && xx.TEMPLATE_ID == RecentBlastedTemplate.TEMPLATE_ID)         
            select new 
             { 
              xx.FROM_COUNTRY, 
              xx.FROM_EMAILID 
             }).Distinct().ToList(); 
Смежные вопросы