gpt4 book ai didi

c# - 选择新的和多个 GroupBy 列中的 Linq Min

转载 作者:行者123 更新时间:2023-12-03 22:58:45 26 4
gpt4 key购买 nike

我想在 Linq 中编写以下查询

INSERT INTO INOUTNEW (CODE,INDATE,TIME_DATE1,INOUTFLAG,TIME_FLD1,TIME_FLD2,TIME_FLD3) 
SELECT CODE,MIN(INDATE),TIME_DATE1,'I',TIME_FLD1,TIME_FLD2,'31/05/2015' FROM INOUT
WHERE TIME_FLD1='T0003' AND INDATE >= '31/05/2015' AND INDATE <= '31/05/2015'
AND TIME_DATE1='31/05/2015'
GROUP BY CODE,TIME_DATE1,TIME_FLD1,TIME_FLD2

所以我正在尝试这个:-

var data = ctx.tblInOut.Where(m => m.CompanyId == companyId && m.Time_Field1 == item.ShiftCode && m.InDate == StrInStart && m.InDate <= StrInEnd && m.Time_Date1 == InputDate).Select(m =>
new
{
EmployeeId = m.EmployeeId,
InDate = Min(m.InDate),
Time_Date1 = m.Time_Date1,
InOutFlag = m.InOutFlag
}).ToList();

我陷入了 Min 部分。如何在 Select 中获取 Min?以及如何在 Linq 中添加多个 GroupBy

最佳答案

尝试这样的事情:

var data = ctx.tblInOut
.Where(m =>
m.CompanyId == companyId &&
m.Time_Field1 == item.ShiftCode &&
m.InDate == StrInStart &&
m.InDate <= StrInEnd &&
m.Time_Date1 == InputDate
)
.GroupBy(m =>
new {
m.Code,
m.Time_Date1,
m.Time_FLD1,
m.Time_FLD2
})
.Select(g =>
new
{
m.Key.Code,
InDate = m.Min(gg => gg.InDate),
m.Key.Time_Date1,
Something = "I",
m.Key.Time_FLD1,
m.Key.Time_FLD2,
SomeDate = "31/05/2015"
}).ToList();

要获得 Min,您必须先进行分组 - 否则它会尝试在单个元素上调用 Min

.Key 仅引用组的键(在本例中为 Code、Date1、Time_FLD1、Time_FLD2 的元组)

关于c# - 选择新的和多个 GroupBy 列中的 Linq Min,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com