2010-02-08 2 views
3

Я хотел бы создать запрос LINQ, который возвращает сумму всех величин для данного номера продукта для родительской учетной записи и всех дочерних учетных записей.Возможно ли создать коррелированный подзапрос в LINQ?

У меня есть таблица продуктов по номеру счета, в котором каждая строка содержит также и Qty номер родительского счета:

 

PartNumber AccountNumber ParentAccountNumber Qty 
---------- ------------- ------------------- --- 
1000000390 27113   27173     2 
1000000390 27516   27173     1 
1000000390 00113   27173     0 
1000000390 27748   27173     5 
 
 

SELECT * FROM Inventory 
WHERE ProductNumber='1000000390' 
AND ParentAccountNumber=(SELECT TOP 1 parentaccountnumber FROM Inventory 
WHERE accountnumber='27748') 

 

это возможно в чистом синтаксиса LINQ? Нужно ли вместо этого использовать синтаксис метода расширения?

Спасибо, -Keith

ответ

4
from item in Inventory 
where item.ProductNumber == 1000000390 
where item.ParentAccountNumber == (from subitem in Inventory 
            where subitem.AccountNumber == 27748 
            select subitem.ParentAccountNumber).First() 
select item 

Нечто подобное?

Вы можете заменить

subitem.AccountNumber == 27748 

с

subitem.AccountNumber == item.AccountNumber 

, если это то, что вы хотели

+0

Отлично! Благодарю. – Keith

Смежные вопросы