我必须在c#中使用linq to sql进行查询。我可以在sql中处理它,但在linq中 sql结果不是我想要的结果。 所以有一个表格:
我必须计算每个日期的ID,时间并不重要。结果如此 应该是这样的:
day: 2013-11-12 amountIDs: 4
人们对我说,我可以选择一个新的查询,在这个查询中我可以设置一天 并且可以计算ID,或者我白天制作一组。我读过类似的问题,但在我的情况下它不起作用。
有人能帮帮我吗?
我尝试使用下面的语句,但是日期必须分组,所以现在输出是foreach datetime,就像这样
day: 12.12.2013 12:00:00 amountIDs: 1
day: 12.12.2013 12:10:10 amountIDs: 1
在sql中我发表了这样的声明:
SELECT CONVERT(VARCHAR(20), data.dayandtime, 106) AS day, count(data.amountIds) as ids
FROM data
WHERE ( data.dayandtime >= DATEADD(day, -28, getdate()) AND (data.type = 100) AND (data.isSomething = 0) )
GROUP BY CONVERT(VARCHAR(20), data.dayandtime, 106), data.isSomthing and it works.
我看到类似的情况,人们制作了一个:from-select-new xyz语句,而不是我查看它并试图将视图分组。喜欢这个
var query = data.GroupBy(g => g.day.Value).ToList();
答案 0 :(得分:3)
var qry = from data in dbContext
group data by data.day into dataGrpd
select new
{
day= dataGrpd.Key,
amountIDs= dataGrpd.Select(x => x.Id).Distinct().Count()
};