请教一个linq查询

leeya66 2018-10-11 02:11:43
我有一个对象info,有属性modId,dDate,opSeq,processId,qty
现在有一个List<info> mylist
有一个日期值 dt1
求满足:modId等于某个值的,dDate的日期早于dt1一天的,group by processId,opSeq 的,
sum(qty)
----------------------------
为了说清楚我的需求,我用sqlserver语句是这样写的
select modId,processId,opSeq,sum(qty ) as qty
from table
where modId='xxx' and DateDiff(Day,dDate,dt1)>=1
group by modId,processId,opSeq

------------------------------

以上如何用Linq 实现?
...全文
201 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
King奕航 2018-10-11
  • 打赏
  • 举报
回复
我怎么记得linq里面对时间进行加减会报错?
xuzuning 2018-10-11
  • 打赏
  • 举报
回复
var q = mylist.Where(r => r.modId==num && (dt1 - r.dDate).Days > 1);
xuzuning 2018-10-11
  • 打赏
  • 举报
回复
dt1 早于 dDate,应是 dt1 - dDate 为正
var q = from t in mylist
where modId==num && (dt1 - dDate).Days > 1
select t;

var q = mylist.Where(r => r.modId==num && (dt1 - r.dDate).Days > 1
);
leeya66 2018-10-11
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
Where(xxxxx).GroupBy(x=>new{x.modId,x.processId,x.opSeq}).Select(x=>new{
     modId = x.modId,
     processId = x.processId,
     opSeq = x.opSeq,
     qty= x.qty.Sum()
 })
能写完整点吗?我套不进去啊,
stherix 2018-10-11
  • 打赏
  • 举报
回复
Where(xxxxx).GroupBy(x=>new{x.modId,x.processId,x.opSeq}).Select(x=>new{
     modId = x.Key.modId,
     processId = x.Key.processId,
     opSeq = x.Key.opSeq,
     qty= x.Sum(x=>x.qty)
 })
上面写错了
stherix 2018-10-11
  • 打赏
  • 举报
回复
Where(xxxxx).GroupBy(x=>new{x.modId,x.processId,x.opSeq}).Select(x=>new{
     modId = x.Key.modId,
     processId = x.Key.processId,
     opSeq = x.Key.opSeq,
     qty= x.Sum(x=>x.qty)
 })
上面写错了
stherix 2018-10-11
  • 打赏
  • 举报
回复
Where(xxxxx).GroupBy(x=>new{x.modId,x.processId,x.opSeq}).Select(x=>new{
     modId = x.modId,
     processId = x.processId,
     opSeq = x.opSeq,
     qty= x.qty.Sum()
 })

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧