基于数量拆分行并递增序列号(Microsoft Access SQL)
Access实现按Qta拆分行并递增S/N
你需要修改查询语句,不再直接SELECT *,而是对S/N字段做递增计算,同时保持其带前导零的格式。具体方案如下:
修改后的SQL查询
SELECT t.Name, Format(Val(t.[S/N]) + (N.numbers - 1), "000") AS [S/N], 1 AS Qta FROM Num AS N INNER JOIN MergedQueries1 AS t ON N.numbers <= t.Qta;
关键说明
- S/N递增逻辑:先用
Val(t.[S/N])把原S/N的文本格式转为数值,加上(N.numbers - 1)(因为Num表的numbers从1开始,第一行加0保留原序列号,第二行加1实现递增,以此类推),再通过Format(..., "000")转回带三位前导零的文本格式,和原数据格式统一。 - Qta字段处理:拆分后每一行的Qta固定设为1,和你给出的示例结果匹配。
- Num表要求:确保Num表的
numbers字段是从1开始的连续整数(如1、2、3……),且最大值不小于数据中Qta的最大值,才能覆盖所有拆分场景。
内容的提问来源于stack exchange,提问作者Luca Benvenuti
相关产品推荐
相关产品推荐

