- 论坛徽章:
- 0
|
变动前
工单号 产品代码 生产部门 生产数量 子项物料长代码 子项物料单位 应发数量 已领数量 在制品数量
TB211 1.02.0137-2051-W Production/Loc Body 28000 IDM.A000.014 EA 1 0 -1
TB211 1.02.0137-2051-W Production/Loc Body 28000 IDM.A000.047 EA 4 0 -4
TB213 1.02.0137-2577-B Production/Loc Body 10000 IDM.A000.047 EA 1 0 -1
TB213 1.02.0137-2577-B Production/Loc Body 10000 IDM.A000.014 EA 1 0 -1
TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.024 EA 60 60 20
TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.014 EA 1 0 -0.6667
TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.047 EA 3 0 -2
变动后
单据号 工单号 产品代码 生产部门 生产数量 子项物料长代码 子项物料单位 应发数量 已领数量 在制品数量
SOUT110001 TB211 1.02.0137-2051-W Production/Loc Body 28000 IDM.A000.014 EA 1 0 -1
SOUT110001 TB211 1.02.0137-2051-W Production/Loc Body 28000 IDM.A000.047 EA 4 0 -4
SOUT110002 TB213 1.02.0137-2577-B Production/Loc Body 10000 IDM.A000.047 EA 1 0 -1
SOUT110002 TB213 1.02.0137-2577-B Production/Loc Body 10000 IDM.A000.014 EA 1 0 -1
SOUT110003 TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.024 EA 60 60 20
SOUT110003 TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.014 EA 1 0 -0.6667
SOUT110003 TB212 1.02.0137-2051-U Production/Loc Body 15000 IDM.A000.047 EA 3 0 -2
---SOUT110001 表达的意思:SOUT+月份+0001
declare @ID int
declare @Ftype varchar(30)
declare @Frob int
declare @FIcmoNo varchar(255)
declare @Fuse varchar(255)
declare @FSourceID int
declare @FMaterNo varchar(255)
declare @FStockNo int
declare @FStockName varChar(255)
declare @FpickDpNo int
declare @FpickDpName varchar(255)
declare @Funitname varchar(255)
declare @FQty decimal(18,2)
declare @FcostobjNo varchar(255)
declare @FcostobjNm varchar(255)
declare @num1 varchar(10)
declare @ordernum1 varchar(255)
declare @tab table
(ID int,Ftype varchar(30),Frob int,FBillNo varchar(255),FIcmoNo varchar(255),Fuse varchar(255),
FSourceID int,FMaterNo int,FStockNo int,FStockName varChar(255),FpickDpNo int,
FpickDpName varchar(255),Funitname varchar(255),FQty decimal(18,2),FcostobjNo varchar(255),FcostobjNm varchar(255)
)
set @ID=1
set @num1=\'001\'
set @ordernum1=\'SOUT\'+\'cast(Month(GETDATE())as char(5))\'+@num1
declare test cursor for select Ftype,Frob,FIcmoNo,Fuse,FSourceID,FMaterNo,FStockNo,FStockName,FpickDpNo,FpickDpName,Funitname,FQty,FcostobjNo,FcostobjNm from #b order by ID
open test
fetch next from test into @Ftype,@frob,@FIcmoNo,@Fuse,@FSourceID,@FMaterNo,@FStockNo,@FStockName,@FpickDpNo,@FpickDpName,@Funitname,@FQty,@FcostobjNo,@FcostobjNm
while @@fetch_status = 0
begin
if exists(select 1 from @tab where FIcmoNo=@FIcmoNo and FMaterNo<>@FMaterNo)
begin
set @num1=right(\'001\'+cast(cast(\'001\' as int)+1 as varchar(5)),3)
set @ordernum1=\'SOUT\'+\'cast(Month(GETDATE())as char(5))\'+@num1
insert @tab values(@id,@Ftype,@Frob,@ordernum1,@FIcmoNo,@Fuse,@FSourceID,@FMaterNo,@FStockNo,@FStockName,@FpickDpNo,
@FpickDpName,@Funitname,@FQty,@FcostobjNo,@FcostobjNm)
end
set @ID=@ID+1
fetch next from test into @Ftype,@Frob,@FIcmoNo,@Fuse,@FSourceID,@FMaterNo,@FStockNo,@FStockName,@FpickDpNo,@FpickDpName,@Funitname,@FQty,@FcostobjNo,@FcostobjNm
end
close test
deallocate test
select * from @tab
不知道这样写有什么问题,可以运行,但是得不到想要的数据,增加一列单据号,根据工单号码和子项物料长代码,如果工单号码相同,子项物料长代码不同的时候就增加一张单据号\"SOUT10001\" |
|