c# - 计算 2 表 where 条件 - Linq
问题描述
我有 2 张桌子,
产品表
id produk batch qty
1 AAA ADADAD 2
2 BBB ADADAD 2
3 BBB AAAAAA 2
...............
并移动桌子,
id produk batch qty
1 BBB ADADAD 1
我想在 stok 表中的 qty 减去 move 表中的 qty 之后显示表,我想要什么表
PRODUK BATCH QTY
AAA ADADAD 2
BBB ADADAD 1
BBB AAAAAA 2
这是我的查询
var obj = _db.produk
.Groupby(a=> new {a.code,a.batch})
.Select(a=> new {
produk = a.key.code,
batch = a.Key.batch,
qty = _db.move.Where(c => a.Any(p => p.code == a.code && p.batch == a.batch)).Sum(a=>a.qty)
}).tolist();
但不工作
解决方案
您必须对分组移动表执行 LEFT JOIN。
var moves =
from m in _db.move
group m by { m.code, m.batch } into g
select
{
g.Key.code,
g.Key.batch,
qty = g.Sum(x => x.qty)
};
var query =
from p in _db.produk
join m in moves on new { p.code, p.batch } equals { m.code, m.batch } into j
from m in j.DefaultIfEmpty()
select new
{
produk = p.code,
batch = p.batch.
qty = p.qty - (int?)m.qty ?? 0
};
推荐阅读
- makefile - 如何在隐式生成文件规则中排除一些文件?
- review - Virto Commerce 中的产品评论
- msbuild - 将文件添加到 XYZ.csproj.FileListAbsolute.txt 的正确方法是什么?
- kotlin - 动态创建返回类型
- c# - 通过 geckoFX 填充字段的问题
- asp.net-mvc - 在视图中显示下拉列表
- elasticsearch - 比较有和没有分数计算的查询
- react-native - ReactNative:适用于 Android 和 iOS 的自定义复选框
- regex - 正则表达式替换。井号标签“标签:”分隔符之后的所有单词
- python - 具有多个 groupby 的 pandas pivot 数据框