0
我有一個問題,爲此我需要建議有關: 我有一個表(CurrentItems)的列:ID,ChangedTime,狀態,ItemType的,公司計數減計數Linq中
狀態列中包含一個數字,其中1意味着已添加,3意味着已刪除
我需要計算某個公司某個時間點的項目總數。任何itemtype都可以添加多次。
示例表包含:
1. Company A add(1) Item 1 at 2001-01-01
2. Company B add(1) Item 1 at 2001-02-01
3. Company A removes(3) Item 1 at 2001-03-01
4. Company B add(1) Item 1 at 2001-04-01
5. Company B removes(3) Item 1 at 2001-05-01
6. Company A add(1) Item 1 at 2001-06-01
7. Company A add(1) Item 1 at 2001-07-01
8. Company B removes(3) Item 1 at 2001-08-01
如果我看2001-05- 那麼結果應該是
Company A totalitems on date: 0
Company B totalitems on date: 1
如果我看2001-08- 結果應該是
Company A totalitems on date: 2
Company B totalitems on date: 0
如果可能的話,該解決方案將很適合在lambda語句中使用。
我得到了多少?
CurrentItems.Where(o=> (o.Status==1 || Status==3) && o.UpdatedTime <
DateTime.Parse("2001-08-02") &&o.Company="A").GroupBy(z=>z.Status)
.Select(z=> new
{
Name=z.Key,
Summa=z.Count(),
}
...
如果我在SQL執行此我會用兩個選擇的和一個。減去從另一個,但我認爲這是有可能把它寫在LINQ更緊湊的方式。
請注意,您可以將'Where(lambda).Count()'更改爲'Count(lambda)'。 – juharr
是啊,你說得對,只是習俗,我更清楚何時有Where Clausule,因爲它更接近SQL。 – Gusman