【发布时间】:2023-03-21 12:00:01
【问题描述】:
我有一个名为 nrt_bal_sheet 的表
date |company_name|amount_db|amount_cr|balance| nrt_acc
11/12/2021 MoneyGram 5000 0 5000 0046D
11/12/2021 MoneyGram 0 2000 7000 0046D
11/12/2021 MoneyGram 0 20000 20000 0046D
12/9/2021 Ria Money 0 15000 15000 0039D
12/11/2021 MoneyGram 10000 857300 857300 0046T
12/11/2021 MoneyGram 1000 85730 914318.61 0046T
12/12/2021 MoneyGram 1000 85730 1000048.61 0046T
我想按日期、nrt_acc、company_name 以及仅最后一个字母“T”的那些 nrt_acc 对 amount_db 和 amount_cr 和余额组求和。
我需要以下结果
date |company_name | amount_db |amount_cr | balance | nrt_acc
12/11/2021 MoneyGram 11000 943030 932030.00 0046T
12/12/2021 MoneyGram 1000 85730 1016760.00 0046T
这是我已经完成的代码。
nrtBalanceSheet = (
from n in db.nrt_bal_sheet
group n by new { n.date, n.nrt_acc, n.company_name } into g
orderby g.date
select new ValuePassModel
{
advice_issue_date = g.Key.date,
company_name = g.key.company_name,
company_code = g.key.nrt_acc,
debit = g.Sum(n => n.amount_db),
credit = g.Sum(n => n.amount_cr),
nrt_bal_sheet = g.Sum(n => n.balance)
}
).ToList();
但我收到了这个错误。
错误 CS1061 'IGrouping, nrt_bal_sheet>' 不包含 'date' 的定义并且没有扩展方法 'date' 接受第一个 'IGrouping, nrt_bal_sheet>' 可以找到(你是 缺少 using 指令或程序集引用?)
请帮助我纠正我的 linq 查询兄弟。
【问题讨论】:
-
请添加 LINQ 提供程序名称和版本(EF、NHibernate 等)。
-
尝试:“orderby g.key.date”
-
试过但错误返回
Error CS1061 'IGrouping<<anonymous type: DateTime date, string nrt_acc, string company_name>, nrt_bal_sheet>' does not contain a definition for 'key' and no extension method 'key' accepting a first argument of type 'IGrouping<<anonymous type: DateTime date, string nrt_acc, string company_name>, nrt_bal_sheet>' could be found (are you missing a using directive or an assembly reference?)@TN
标签: linq