说我有类,如: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