免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3127 | 回复: 3
打印 上一主题 下一主题

请人指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-06 14:37 |只看该作者 |倒序浏览
变动前                                                               
工单号        产品代码                   生产部门                             生产数量        子项物料长代码 子项物料单位        应发数量         已领数量        在制品数量
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\"

论坛徽章:
0
2 [报告]
发表于 2007-12-06 14:47 |只看该作者
将“set @ordernum1=\'SOUT\'+\'cast(Month(GETDATE())as char(5))\'+@num1”修改为:
set @ordernum1=\'SOUT\'+cast(Month(GETDATE()) as varchar(2))++@num1


Try again!

论坛徽章:
0
3 [报告]
发表于 2007-12-06 15:02 |只看该作者
太长了 佩服楼上的有耐心看

论坛徽章:
0
4 [报告]
发表于 2007-12-06 16:06 |只看该作者

更新

更新了,不行,还是没有数据,郁闷!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP