Linq GROUP BY 和 SUM 可为空长
Linq GROUP BY and SUM nullable long
这是我的代码:
var Summary = ccL3.GroupBy(g => new
{
g.JOB_BASE_NUM,
g.TOP_CUSTOMER_ID,
g.TOP_DESCRIPTION
})
.Select(g => new Type2
{
JOB_BASE_NUM = g.Key.JOB_BASE_NUM,
TOP_CUSTOMER_ID = g.Key.TOP_CUSTOMER_ID,
TOP_DESCRIPTION = g.Key.TOP_DESCRIPTION,
SUM_JOB1 = g.Sum(gs => gs.JOB1)
})
编辑:这不是重复的。前面的讨论不能直接用在GROUP BY中
JOB1 为 nullable long。
问题是,如果 ccL3 中的所有 JOB1 都为空,我需要 SUM_JOB1 为空(如果全部为空或总和为 0,则 returns 0)。
我搜了下面的题目,没有linq中GROUP BY中SUM of null的讨论。有人能帮助我吗。谢谢。
参考:
handle null in linq sum
Linq query with nullable sum
如果任何一项不为空,则使用Sum
,否则为空
SUM_JOB1 = g.Any(gs => gs.JOB1 != null) ? g.Sum(gs => gs.JOB1) : null
这是我的代码:
var Summary = ccL3.GroupBy(g => new
{
g.JOB_BASE_NUM,
g.TOP_CUSTOMER_ID,
g.TOP_DESCRIPTION
})
.Select(g => new Type2
{
JOB_BASE_NUM = g.Key.JOB_BASE_NUM,
TOP_CUSTOMER_ID = g.Key.TOP_CUSTOMER_ID,
TOP_DESCRIPTION = g.Key.TOP_DESCRIPTION,
SUM_JOB1 = g.Sum(gs => gs.JOB1)
})
编辑:这不是重复的。前面的讨论不能直接用在GROUP BY中
JOB1 为 nullable long。
问题是,如果 ccL3 中的所有 JOB1 都为空,我需要 SUM_JOB1 为空(如果全部为空或总和为 0,则 returns 0)。
我搜了下面的题目,没有linq中GROUP BY中SUM of null的讨论。有人能帮助我吗。谢谢。
参考: handle null in linq sum
Linq query with nullable sum
如果任何一项不为空,则使用Sum
,否则为空
SUM_JOB1 = g.Any(gs => gs.JOB1 != null) ? g.Sum(gs => gs.JOB1) : null