2012-12-27 22 views
1

組,這是我的數據表如何通過和運算的DataTable

Id Article Lot  Ordered  Unit Shipment Difference 
1  32207  21309 80   Case 80   0 
2  32218  21309 70   Case 60   10 
3  32237  22359 50   Case 50   0 
4  32255  24299 100   Case 100   0 
5  32207  24299 110   Case 110   0 
6  32218  21309 80   Case 75   5 
7  32237  21309 60   Case 60   0 
8  32255  21309 75   Case 75   0 

我需要集團爲列第四和地段,總結數量列(有序,運輸和差異)。

預期的結果將是:

Article Lot Ordered Unit Shipment Difference 
32207 21309 80 Case 80   0 
32218 21309 150 Case 135   15 
32237 22359 50 Case 50   0 
32255 24299 100 Case 100   0 
32207 24299 110 Case 110   0 
32237 21309 60 Case 60   0 
32255 21309 75 Case 75   0 

我希望獲得使用LINQ的結果。 任何人都可以幫助我嗎?

非常感謝

+1

你嘗試過什麼?您可以通過AsEnumerable擴展方法將DataTable用作可枚舉對象。除此之外,請查看可枚舉(以及其他許多方法)上的[GroupBy函數](http://msdn.microsoft.com/zh-cn/library/bb341740.aspx)。 – Styxxy

回答

0

嘗試將其轉換爲枚舉然後使用LINQ

更新

from v in mytable 
group v by new {v.Article,v.Lot} into g 
select new 
{ 
    Article = g.Key.Article , 
    Lot = g.Key.Lot , 
    Ordered = g.Sum(X=>X.Ordered), 
    Unit = g.First(), 
    Shipment = g.Sum(X=>X.Shipment), 
    Difference = g.Sum(X=>X.Difference) 
} 
+0

您需要按文章**和**批量分組。 – Styxxy

+0

啊錯過了,更新了我的代碼 – S3ddi9

+0

在此先感謝 –