說我有類,如:LINQ聚集
public class ServiceCall
{
public int ServiceCallID {get; set;}
public DateTime ReportedTimestamp {get; set;}
public bool IsPaid {get; set;}
public decimal LabourNet { get; set;}
public decimal LabourVat {get; set;}
}
public class UsedPart
{
public int UsedPartID { get; set; }
public decimal NetPrice { get; set; }
public decimal VatAmount {get; set;}
}
我想在返回的數據格式:
Month #CallsReceived AmountInvoiced MoneyReceived
Jan 2009 202 €32050.20 €29200.00
Feb 2009 213 €35050.20 €34200.00
金額開具發票是一個總的所有(NetPrices + VatAmounts)+中(LabourNet + LabourVat)net a一個月,收到的錢總共是IsPaid = true。 我無法正確獲取此報告的linq查詢。我不確定在哪裏分組以及何時執行總和。
我現在有的linq查詢如下,但我沒有得到任何接近我想要的東西。任何人都有一些好點子?
var q = from s in ServiceCalls
join up in UsedParts on s.ServiceCallID equals up.ServiceCallID into tmp
from nullablePart in tmp.DefaultIfEmpty()
group s by s.ReportedTimestamp.Month
into grp
select new
{
Month = grp.Key,
CallsReceived = grp.Count(),
AmountInvoiced = grp.Sum(s => s.UsedParts.Sum(p => p.NetPrice)),
};
請告訴我們你*得到了什麼。請記住,這將會聚集在「一年中的月份」而不是「特定年份的月份」 - 即它會在2009年2月和2008年2月結合在一起。 – 2009-11-04 14:29:00
顯示我目前擁有的內容沒有太多意義這真的有點兒太過分了。 基本上我想要做的是彙總來自詳細信息行的數據,並將這些數據按主/從行的年/月進行分組。在sql中不是非常困難,但似乎無法在linq中正確使用它。 它將不得不分解成我認爲的幾個查詢。任何想法的最佳方法來處理它? – 2009-11-04 15:45:08