上图中的问题是
我在LINQ中尝试了几个代码但是错了,因为这个值在所有3条记录中成倍增加,这是完全错误的。
var transQuery = (from tq in db.TransactionsLogDbSet
where (tq.TransactionType == TransactionType.PurchaseOfShares)
|| (tq.TransactionType == TransactionType.TransferOfShares)
|| (tq.TransactionType == TransactionType.BonusSharesDeclared)
select tq);
var query = from row in db.TransactionsLogDbSet
group row by row.Transholder_ID into g
select new { Count = g.Count() };
答案 0 :(得分:1)
好吧,我想我终于得到了你想要的东西。
是吗?:按TransactionType
对某些Transholder_ID
的所有行进行分组,然后从每个组中选择最大Translog_Date
行,为您提供最新的行数Transholder_ID
。获得结果后,您可以迭代它以计算您需要的任何内容。
from t in db.TransactionLogDbSet
where where tq.TransactionType == TransactionType.PurchaseOfShares || tq.TransactionType == TransactionType.TransferOfShares || tq.TransactionType == TransactionType.BonusSharesDeclared
group t by t.Transholder_ID into g
select (from t1 in g orderby t1.Translog_Date descending select t1).First();
编辑:只要我们最终得出正确的查询,我就会继续编辑我的答案的以下部分。
到目前为止您的上一条评论显示,您只想选择TransLog_Date
< =给定DateTime qualifiedDate
的所有行。
from t in db.TransactionLogDbSet
where t.TransactionLog_Date <= qualifiedDate
select t
是吗?