我有一个这样的 LINQ 查询:
from a in _context.tblTradeSpends
orderby a.DealPeriod, a.CustomerNumber, a.LOB, a.VersionDate descending
select new
{
DealPeriod = a.DealPeriod,
CustomerNumber = a.CustomerNumber,
LOB = a.LOB,
PromoID = a.PromoID,
VersionDate = a.VersionDate
}
这是我的结果集中的一个小样本(抱歉格式化):
DealPeriod CustomerNumber LOB PromoID VersionDate
2013 10001 PL P0083312 12/04/2013 9:05
2013 10001 PL P0083313 12/04/2013 9:05
2013 10001 PL P0083314 12/04/2013 9:05
2013 10001 PL P0085100 12/04/2013 9:05
2013 10001 PL P0086169 12/04/2013 9:05
2013 10001 PL P0083312 18/01/2013 10:51
2013 10001 PL P0083313 18/01/2013 10:51
2013 10001 PL P0083314 18/01/2013 10:51
2013 10001 PL P0085100 18/01/2013 10:51
2013 10001 PL P0083312 07/07/2013 15:41
2013 10001 PL P0083313 07/07/2013 15:41
2013 10001 PL P0083314 07/07/2013 15:41
2013 10001 SCF P0083308 03/05/2013 11:27
2013 10001 SCF P0083309 03/05/2013 11:27
2013 10001 SCF P0085088 03/05/2013 11:27
2013 10001 SCF P0085380 03/05/2013 11:27
2013 10001 SCF P0085381 03/05/2013 11:27
2013 10213 SCF P0086880 11/07/2013 20:23
2013 10213 SCF P0086881 11/07/2013 20:23
2013 10213 SCF P0086882 11/07/2013 20:23
2013 10213 SCF P0086883 11/07/2013 20:23
2013 10213 SCF P0083630 28/05/2013 13:38
2013 10213 SCF P0083631 28/05/2013 13:38
2013 10213 SCF P0083632 28/05/2013 13:38
2013 10213 SCF P0083633 28/05/2013 13:38
我需要分析这些数据,所以我希望删除某些相关记录以减少内容。我的规则是我想删除所有具有相同交易期间、客户编号和 LOB 字段的记录,其中没有一个记录的版本日期超过 2013 年 1 月 6 日(2013 年 6 月 1 日)
因此,在我的结果集中,我想保留所有以开头的记录,2013|10001|PL
因为有些记录的版本日期为 07/17/2013
我会删除以开头的记录,2013|10001|SCF
因为没有具有这些字段值的记录的版本日期超过 2013 年 1 月 6 日
我想保留以开头的记录,2013|10213|SCF
因为其中一些记录的版本日期为 2013 年 7 月 11 日。
编辑
我尝试了 King King 的代码,我得到了一些不应该在那里的相关记录。以下是我会被过滤掉的两组:
2013 10039 SCF P0083145 05/02/2013 10:22
2013 10039 SCF P0083146 05/02/2013 10:22
2013 10039 SCF P0083147 05/02/2013 10:22
2013 10039 SCF P0085152 05/02/2013 10:22
2013 10039 SCF P0083145 1/22/2013 5:55:00 PM
2013 10039 SCF P0083146 1/22/2013 5:55:00 PM
2013 10039 SCF P0083147 1/22/2013 5:55:00 PM
2013 10039 SCF P0085152 1/22/2013 5:55:00 PM
2013 10039 SCF P0083145 12/05/2012 19:21
2013 10039 SCF P0083146 12/05/2012 19:21
2013 10039 SCF P0083147 12/05/2012 19:21
2013 10040 PL P0084345 1/14/2013 10:27:00 AM
2013 10040 PL P0084346 1/14/2013 10:27:00 AM
2013 10040 PL P0084347 1/14/2013 10:27:00 AM
2013 10040 PL P0084348 1/14/2013 10:27:00 AM
2013 10040 PL P0084345 12/20/2012 10:15:00 PM
2013 10040 PL P0084346 12/20/2012 10:15:00 PM
2013 10040 PL P0084347 12/20/2012 10:15:00 PM
2013 10040 PL P0084348 12/20/2012 10:15:00 PM