ページ

2011年4月6日水曜日

◆LINQで明細集計処理

注文と注文明細の様に親子関係のテーブルはよくある。
なので、注文毎に注文明細に金額を集計するなどというのもよくある計算だろう。

そこで、NorthWindsデータベースのorderテーブルとorder_detailテーブルを例に金額集計してみた。

  1. //明細集計処理  
  2. public void linqSumDetails(Form1 form)  
  3. {  
  4.     using (NorthWindDataContext nwnd = new NorthWindDataContext())  
  5.     {  
  6.         var sumprice = nwnd.Order.Select(n => new  
  7.                                         {  
  8.                                             n.OrderID,  
  9.                                             price = n.Order_Details.Sum(d =>  
  10.                                                 d.UnitPrice * d.Quantity)  
  11.                                         });  
  12.         form.dataGridView1.DataSource = sumprice;  
  13.     }  
  14. }  

OrderからOrder_detailを手繰って、その単価と数量を掛けた値を合計している。
結果はこんな感じになる。
20110406201936


ちなみに、Discountは考慮していない。

0 件のコメント:

コメントを投稿

私が最近チェックした記事