给定一个具有以下行的数据表。
SHOPID ITEMID OLD_BATCHNO NEW_BATCHNO OLD_QTY NEW_QTY
SHOP01 ITEM01 BATCH0001 1
SHOP01 ITEM01 BATCH0001 1
SHOP02 ITEM02 BATCH0002 2
SHOP02 ITEM02 BATCH0002 3
SHOP03 ITEM03 BATCH0003 4
SHOP03 ITEM03 BATCH0003 5
SHOP04 ITEM04 BATCH0004 4
SHOP05 ITEM05 BATCH0005 5
预期结果:
SHOPID ITEMID OLD_BATCHNO NEW_BATCHNO OLD_QTY NEW_QTY
SHOP02 ITEM02 BATCH0002 BATCH0002 2 3
SHOP03 ITEM03 BATCH0003 BATCH0003 4 5
SHOP04 ITEM04 BATCH0004 4
SHOP05 ITEM05 BATCH0005 5
我想获取满足以下条件的所有行:
- 匹配的商店ID *
- 以及
- 匹配的项目ID *
- 以及
- [旧批次编号-新批次编号]不匹配 *
- 或
- 已匹配[旧批次编号-新批次编号],但未匹配[旧数量-新数量]*
3条答案
按热度按时间6fe3ivhb1#
如果数据表中的行是
Item
类型,并且这些行是在List<Item> items
中收集的,则这应该是一种可能的方法:groupedItems
对象满足 * 匹配的SHOPID* 和 * 匹配的ITEMID* 要求。filteredGroupedItems
对象满足以下两个要求中的“之一”要求:resultingItems
对象是每个筛选分组的“合并”项的集合。给定示例输入,对应的输出如下所示:
小提琴here示例。
elcex8rz2#
你能发布一些你已经尝试过的代码吗?虽然你不太了解如何读取数据,但根据你的
linq
标记,我猜你可以访问类。基于对代码的一些假设,我将执行如下操作
bjp0bcyl3#
试试这个,我试着写一个简单的查询。