C# Linq 实现 对表某类型的数据统计
2017-10-26 11:27
441 查看
DateTime start = Convert.ToDateTime(startTime);
DateTime end = Convert.ToDateTime(EndTime);
Entity.MP.Num num = new Entity.MP.MicroChannelNum();
var scan = db.text.Where(f => f.MemId == memId && f.Type == 1); var follow = db.text.Where(f => f.MemId == memId && f.Type == 2); var loss = db.text.Where(f => f.MemId == memId && f.Type == 3); if(channelId != 0) { scan = scan.Where(f => f.ChannelId == channelId); follow = follow.Where(f => f.ChannelId == channelId); loss = loss.Where(f => f.ChannelId == channelId); } if (!string.IsNullOrEmpty(startTime)&& !string.IsNullOrEmpty(EndTime)) { scan = scan.Where(f => f.AddTime >= start && f.AddTime <= end); follow = follow.Where(f => f.AddTime >= start && f.AddTime <= end); loss = loss.Where(f => f.AddTime >= start && f.AddTime <= end); } if (labelId != 0) { var scans = from a in scan join b in db.MicroChannel on a.ChannelId equals b.ID join c in db.MicroChannelLabel on b.LabelId equals c.ID where c.ID == labelId select new { a.ID, a.ChannelId, a.UserWxID, a.UserOpenId, a.AddTime }; var follows = from a in follow join b in db.MicroChannel on a.ChannelId equals b.ID join c in db.MicroChannelLabel on b.LabelId equals c.ID where c.ID == labelId select new { a.ID, a.ChannelId, a.UserWxID, a.UserOpenId, a.AddTime }; var losses = from a in loss join b in db.MicroChannel on a.ChannelId equals b.ID join c in db.MicroChannelLabel on b.LabelId equals c.ID where c.ID == labelId select new { a.ID, a.ChannelId, a.UserWxID, a.UserOpenId, a.AddTime }; num.Scan = scans.ToList().Count; num.Follow = follows.ToList().Count; num.Loss = losses.ToList().Count; num.Growth = num.Follow - num.Loss; return num; } num.Scan = scan.ToList().Count; num.Follow = follow.ToList().Count; num.Loss = loss.ToList().Count; num.Growth = num.Follow - num.Loss; return num; 结果
相关文章推荐
- C# 用Linq实现DataTable实现重复数据过滤
- C# 用Linq实现DataTable实现重复数据过滤
- C#用DataTable实现Group by数据统计
- C# 使用linq处理返回带datetime类型数据 json显示/date(xxxxx)/
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- C#用DataTable实现Group by数据统计
- C#用DataTable实现Group by数据统计
- C#实现任意数据类型转成json格式输出
- C# 3.0通过Linq、Lambda、匿名函数、代理函数实现数据查询
- C# Linq to sql 实现 group by 统计多字段 返回多字段
- C#基于Linq和反射实现数据持久化框架Xml4DB
- 采用扩展方法实现数组中数据类型转换(c#)
- c# 使用linq查询子句方式实现 字符串数组统计操作
- C#用DataTable实现Group by数据统计
- C#用DataTable实现Group by数据统计
- C#中的数据类型统计
- C#中定义枚举类型数据
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- 数据库中与C#中的数据类型对照