gpt4 book ai didi

c# - 如何使用group by连接两个表并进行计算?

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:56 25 4
gpt4 key购买 nike

我正在尝试使用 linq group by 找出两个表之间的金额差异。有两个名为 TabA 和 TabB 的表。两个表具有相同的结构和主键。主键是:Curr 和 Dept。

enter image description here

预期结果:

enter image description here

差异 = TabA.Amt- TabB.Amt

我尝试了下面的部分代码:

var q = from row in TabA.AsEnumerable().Concat(TabB.AsEnumerable())
group row by new
{
currency = row.Field<String>("Curr"),
dept = row.Field<String>("Dept")
}into matches
select new
{
currency = matches.Key.currency,
dept = matches.Key.dept,
// diff = Amount Difference
};

感谢您的解决方案:

最佳答案

diff = matches.First().Field<decimal?>("Amt") - 
matches.Skip(1).First().Field<decimal?>("Amt")

要处理空元素,我们需要遵循一些规则。然而,当 2 个操作数之一(或两者)为 null 时,上面的代码将使 diff 为 null。

更新

要使用 0 作为 Amt 的默认值,您可以像这样使用方法 GetValueOrDefault():

diff = matches.First().Field<decimal?>("Amt").GetValueOrDefault() - 
matches.Skip(1).First().Field<decimal?>("Amt").GetValueOrDefault()

关于c# - 如何使用group by连接两个表并进行计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866027/

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