You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定条件查询统计InventDim表中InventSerialId的数量

关联InventDim、InventSum统计符合条件序列号总数实现方案

数据库层面SQL查询

直接在业务库执行以下语句,把@给定ItemId、@给定仓库ID替换为实际参数即可:

-- 统计去重后的序列号总个数(同一个序列号有多条库存记录时只算1次)
SELECT COUNT(DISTINCT id.InventSerialId) AS SerialCount
FROM InventSum iss
JOIN InventDim id ON iss.InventDimId = id.InventDimId
WHERE iss.ItemId = @给定ItemId
  AND id.InventLocationId = @给定仓库ID
  AND (iss.PhysicalInvent > 0 OR iss.Picked > 0)
  AND id.InventSerialId != '' -- 排除没有序列号的库存记录

-- 如果需要统计所有带序列号的库存记录的总数量(同一个序列号多条记录多次计数),把上面的COUNT部分替换为:
-- SELECT COUNT(id.InventSerialId) AS SerialTotalCount

Dynamics 365 Finance/AX 应用层X++查询

如果是在二开代码中实现,可使用以下X++语句:

InventSum inventSum;
InventDim inventDim;
int serialCount;
// 替换为实际的物料ID、仓库ID
ItemId targetItemId = 'ITEM0001';
InventLocationId targetWarehouse = 'WH001';

// 统计去重序列号数量
select count(RecId) from inventDim
    join inventSum
    where inventSum.InventDimId == inventDim.InventDimId
    && inventSum.ItemId == targetItemId
    && inventDim.InventLocationId == targetWarehouse
    && (inventSum.PhysicalInvent > 0 || inventSum.Picked > 0)
    && inventDim.InventSerialId != '';

serialCount = inventDim.RecId;
info(strFmt("符合条件的序列号总数:%1", serialCount));

注意事项

  • InventSerialId字段存储在InventDim库存维度表中,关联时必须保证InventDimId关联准确
  • 如果需要统计每个序列号对应的可用库存数量,可以在select中添加group by inventDim.InventSerialId,同时聚合inventSum.PhysicalInvent字段

内容的提问来源于stack exchange,提问作者simon peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:18:01