【发布时间】:2018-11-19 06:17:29
【问题描述】:
我有以下数据网格,如下图所示。
我在销售数据网格中有 3 个具有相同 ItemCode 的类似商品的销售额,总和为 4。
该特定商品的当前库存为 20。
当我点击验证按钮时,我使用以下查询从当前库存中减去销售额,从而更新交易历史数据网格。
查询:
var changes = (from dr1 in dtItemSales.AsEnumerable()
from dr2 in dtItemStock.AsEnumerable()
where dr1.Field<string>("ItemCode") == dr2.Field<string>("ItemCode")
select new
{
Name = dr2.Field<string>("ItemCode"),
Remarks = dr2.Field<int>("Qty") - dr1.Field<int>("Quantity")
}).Distinct().ToList();
//Updating the Transaction History DataGrid.
dgTransactionHistory.ItemsSource = changes;
我的问题是,当我从 Current 中减去 Sales 库存我得到了 2 条记录,它们带有相同的 ItemCode 和 2 个不同的值 19 和 18。
在这种特殊情况下,我应该只获得 1 条值为 16 的记录。 (20 - 2 - 1 - 1)
任何有关此查询的帮助将不胜感激。谢谢。
【问题讨论】:
-
你应该用itemcode按记录分组,然后对销售和购买的任务求和。然后做减法。
-
投反对票的人请说明你对投反对票的澄清。
标签: c# wpf linq wpfdatagrid