作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 linq 的新手,我需要帮助。我有一个带有金额字段的交易表,我想将金额字段拆分为借方和贷方。什么是 linq 相当于下面的 sql 查询:
从 Account = strAccount 的交易中选择 sum(Amount < 0 ? Amount:0) 作为 Debit,sum (Amount >0 ? 0: Amount) 作为 Credit。
最佳答案
不幸的是,没有像在获取单个结果时那样在单个 LINQ 查询中表达两个聚合的简单方法。两个单独的查询将是:
// Doesn't actually perform a query yet
var accountTransactions = db.Transactions.Where(t => t.AccountId == accountId);
var credit = accountTransactions.Sum(t => t.Amount > 0 ? t.Amount : 0);
var debit = accountTransactions.Sum(t => t.Amount < 0 ? t.Amount : 0);
var credit = accountTransactions.Sum(t => Math.Max(t.Amount, 0));
var debit = accountTransactions.Sum(t => Math.Min(t.Amount, 0));
var query = from account in db.Accounts
join transaction in db.Transactions
on account.AccountID equals transaction.TransactionID
into trans
select new { Account = account,
Credit = trans.Sum(t => Math.Max(t.Amount, 0)),
Debit = trans.Sum(t => Math.Min(t.Amount, 0)) };
var myTransactions = query.Where(result => result.Account.AccountId == accountID)
.FirstOrDefault();
关于linq - 如何在 linq 中进行聚合查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5561753/
我是一名优秀的程序员,十分优秀!