我查看了 StackOverflow 并尝试了一些帖子,但完全被卡住了。基本上我有下面的查询(在 LinqPad 中测试),对于“总和”值,它给了我两次相同的值。我真正想要的是连接到同一个表,按日期分组,并显示来自连接表和原始表的基本相同列(值)的总和。
我发现您不能在 LINQ 中使用别名(即在 SQL FieldName 中为“NewFieldName”),所以我需要以某种方式总结 t.Value 和 p.Value,并在我的结果中显示 SiteID 和 EntryDate 旁边的那些。
(from p in DailyStatistics
join t in DailyStatistics on new { p.EntryDate, p.SiteID} equals new { t.EntryDate, t.SiteID}
where t.Metric == "MyVisitors"
&& p.Metric == "MyVisits"
&& p.EntryDate >= DateTime.Parse("2013-08-15" )
&& p.EntryDate <= DateTime.Parse("2013-08-21" )
group p by new { t.SiteID, p.EntryDate } into s
orderby s.Key.EntryDate
select new {s.Key.SiteID, s.Key.EntryDate, SumVisits = s.Sum(t => t.Value), SumVisitors = s.Sum(x => x.Value) })
我特别尝试了这个,但不能完全适应我的需要: SQL multiple joins and sums on same table
任何想法都会被愉快地接受:-)