具有多个计数器的Linq查询

具有多个计数器的Linq查询,linq,Linq,我是Linq的新手,需要一些帮助。事实上,我甚至不确定这是否可能。鉴于样本数据: WarehouseId Sku Dropship QtyOrdered QtyAvaliable ================================================================= 1 ABC-123 1 6 2 ABC-

我是Linq的新手,需要一些帮助。事实上,我甚至不确定这是否可能。鉴于样本数据:

WarehouseId     Sku     Dropship    QtyOrdered      QtyAvaliable
=================================================================
1               ABC-123                 1               6
2               ABC-123                 1               2
3               ABC-123                 1               0
1               XYZ-789                 2               11
2               XYZ-789                 2               1
3               XYZ-789                 2               3
1               JKL-456   Y             1               0
2               JKL-456   Y             1               0
3               JKL-456   Y             1               1
我试图确定每个仓库的库存订单项目总数,包括所有订单项目和没有直运项目的订单。所以我想要的输出是这样的:

WarehouseId: 1,
QtyInStock: 2,
QtyNonDropship: 2

WarehouseId: 2,
QtyInStock: 1,
QtyNonDropShip: 1

WarehouseId: 3,
QtyInStock: 2,
QtyNonDropship: 1
我启动了Linq查询,但不确定如何执行计数器。我很确定我需要一个
GroupBy

var results = (from o in orderItems
                where o.QtySellable >= o.QtyOrdered // <-- add '1' to QtyInStock
                || (o.QtySellable >= o.QtyOrdered && o.Dropship != 'Y')// <-- add '1' to QtyNonDropShip
                select new 
                {
                    WarehouseId,
                    QtyInStock += QtyInStock 
                    QtyNonDropShip += QtyNonDropShip 
                }).ToList();
var results=(来自orderItems中的o)

其中o.QtySellable>=o.QtyOrdered/=o.QtyOrdered&&o.Dropship!=“Y”)/您需要根据
仓库ID进行分组:

var results = from o in orderItems
              group o by o.WarehouseId into g
              select new { WarehouseId=g.Key,
                           QtyInStock=g.Count(e=>e.QtySellable >= e.QtyOrdered),
                           QtyNonDropShip =g.Count(e=>e.QtySellable >= e.QtyOrdered && e.Dropship != "Y")
                         };

您能否解释一下如何获得这些值:
WarehouseId:1,QtyInStock:2,QTYNondrophip:2
-您有总可用数量
6+11+0=17
,而此值不在输出中。另外,您在查询中使用了字段
QtySellable
,该字段在示例数据中不存在。我不是在统计库存中可用的项目数量,而是在统计库存中的项目。例如,在数据集中,有3个sku项目和3个仓库。对于每个仓库的每个sku,请检查该项目是否有库存。如果
QtyOrdered>=QtyAvailable
,则向计数器添加一个。该商品有库存。对于第一个仓库,只有一个商品
QtyOrdered>=QtyAvailable
。但在输出中,您显示的是
QtyInStock:2
对不起,我打错了。对于第一个仓库,
QtyAvailable>=QtyOrdered
将使您的
QtyInStock
等于3。OP执行为2