I want to get the result of which records exist in a group by records in Linq. I have got the query in SQL but am struggling to get it in LINQ
In SQL query
select LEVEL, DESCR
from ACTIVITY_LKUP
WHERE LEVEL IN ( //Checking row exists
select TOP 2 b.LEVEL
from ACTIVITY_LKUP b
WHERE b.LEVEL > (
select max(b.LEVEL)
from ACTIVITY a, ACTIVITY_LKUP b
WHERE b.TYPE = a.ACTIVITY_TYPE
and a.JOB_CANDIDATE_ID = 1
)
group by b.level //Grouping here
)
order by LEVEL
In Linq query
var duplicate =(from lkup in ACTIVITY_LKUP
where lkup.LEVEL== (from actlk in ACTIVITY_LKUP //Iam Not able to check row exists in the group by
where actlk.LEVEL >
(
from act in ACTIVITY
join lkup in ACTIVITY_LKUP on act.ACTIVITY_TYPE equals lkup.TYPE
where act.JOB_CANDIDATE_ID == 1
orderby lkup.LEVEL
select lkup.LEVEL
).First()
group actlk by actlk.LEVEL into lggrp
select new { LEVEL = lggrp.Key,DESCR=lggrp.Select(x=>x.DESCR)
}).Take(2)
select lkup)
Showing error line "Operator '==' cannot be applied to operands of type 'int?' and 'System.Linq.IQueryable".
How can we do it in LINQ? Help me anyone.