У меня есть таблица db, которая имеет данные, как показано ниже.LINQ - Группировка с наличием?
Name Tool Security QUANTITY PRICE
ABC ML XXX 100 50
ABC DB XXX -50 50
XYZ CS YYY 30 30
Мое требование состоит в том, чтобы сгруппировать имя и безопасность и выбрать только ту запись, которая имеет как отрицательное, так и положительное количество. В T-SQL это мой запрос, который отлично подходит. Нужна аналогичная в LINQ. Например, в приведенном выше примере будут показаны обе строки для ABC & XXX.
select t1.* from MyTable as t1
inner join
(
select Name,Security from MyTable
group by Name, Security
HAVING min(Quantity)<0 and max(Quantity)>0
) as t2 on t1.Name=t2.Name and t1.Security =t2.Security
Это мой внутренний запрос, но он не работает.
var Positions = from r in lstpositions
group r by new { r.Name, r.Security} into grp
where grp.Min(x => x.Quantity<0) && grp.Max(x => x.Quantity >0)
select grp;
Любые мысли об этом?
Спасибо так много. Я не понял, что должен попробовать. – DJay