3

請求書を受け取り、添付された各アイテムの数量と単価を検索し、別のリンクされたテーブルで、請求書に対して行われた支払いを検索する LINQ クエリがあります。

現在、これは次のとおりです。

from i in Invoices
select new
{
i.InvoiceId, i.CustomerName,
Items =
    from it in InvoiceItems
    where i.InvoiceId == it.InvoiceId 
    select new { 
    it.Item, 
    it.Quantity, 
    it.UnitPrice,
    SubPrice=it.Quantity*it.UnitPrice
    },
Payments = 
    from pi in PaymentInvoices
    where i.InvoiceId == pi.InvoiceId 
    select new {
    SumPayments=pi.AmountAllocated
    }
}

これは、次の結果を示しています。

結果のスクリーンショット

この LINQ クエリを変更して、SubPrice と SumPayments の合計のみを表示するにはどうすればよいですか (つまり:

請求書 11: SubPrice= 90.00 SumPayments= 24.00

請求書 12: SubPrice=175.00、SumPayments=175.00

助けてくれてありがとう、

マーク

ケネスからの回答に続く実用的な回答を示す更新

from i in Invoices
select new
{
    InvoiceID = i.InvoiceId, 
    CustomerName = i.CustomerName,
    SubPrice = InvoiceItems.Where(it => it.InvoiceId == i.InvoiceId).Select(it => it.Quantity*it.UnitPrice).Sum(),
    SumPayments = PaymentInvoices.Where(pi => pi.InvoiceId == i.InvoiceId).Select(pi => pi.AmountAllocated).Sum()
}
4

1 に答える 1

4

次の方法を使用できます。

from i in Invoices
select new
{
    InvoiceID = i.InvoiceId, 
    CustomerName = i.CustomerName,
    SubPrice = InvoiceItems.Where(it => it.InvoiceID = i.InvoiceID).Select(it => it.Quantity*it.UnitPrice).Sum(),
    SumPayments = PaymentInvoice.Where(pi => pi.InvoiceId = i.InvoiceId).Select(pi => pi.AmountAllocated).Sum()
}
于 2013-05-17T12:50:40.907 に答える