--生产中我们至少有一个订单表,一个生产进度表,如何将订单表与生产进度表合成一张表呢,以下是一个例子,这种方法可以在存储过程中实现,亦可放在客户端实现
CREATE PROCEDURE [dbo].[ProcessPlanForm]--加工进度计划安排表
@SQLQualification varchar(1000),@MaxJDsl int--SQL条件,最大进度数量
as
declare @mySQL varchar(8000)--SQL条件
declare @Inpcolums varchar(1000)--被插入字段列表
set @InpColums=''
declare @Outcolums1 varchar(2000)--插入值1--序号
set @OutColums1=''
declare @Outcolums2 varchar(2000)--插入值2--计划开始
set @OutColums2=''
declare @Outcolums3 varchar(2000)--插入值3--计划日期
set @OutColums3=''
declare @Outcolums4 varchar(2000)--插入值4--接件日期
set @OutColums4=''
declare @Outcolums5 varchar(2000)--插入值5---完成日期
set @OutColums5=''
declare @OutConst varchar(200)--输出列表常量
declare @Fildlist varchar(1000)--字段列表
set @Fildlist=''
set @OutConst='序号,客户,订单编号,品名,材质,成品尺寸,数量,预交期,'
declare @xh int
set @xh=1
set @mysql='
--创建临时表
declare @mytemp table (MYID decimal(18,0) IDENTITY (1,1) NOT NULL,序号 varchar(11) NULL,客户 varchar(5) NULL,订单编号 varchar(30) NULL,品名 varchar(30) NULL , 材质 varchar(15) NULL,成品尺寸 varchar(18) NULL,数量 int NULL,预交期 datetime NULL ,工序 varchar(20) NULL'
while @xh<=@MaxJDsl
begin
--修改表结构
if @FildList=''
set @FildList=',工序'+convert(varchar(2),@xh) +' varchar(20) NULL'
else
set @FildList=@FildList+',工序'+convert(varchar(2),@xh) +' varchar(20) NULL'
--set @mysql=@mysql+'alter table #mytemp add 工序'+convert(varchar(2),@xh)+' varchar(20) null'+char(13)--记录新增字段名列表
--第一次插入值--工序
if @OutColums1=''
set @OutColums1='dbo.findscjdRecNo1(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
else
set @OutColums1=@OutColums1+',dbo.findscjdRecNo1(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
--第二次插入值列表--计划开始
if @OutColums2=''
set @OutColums2='dbo.findscjdRecNo2(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
else
set @OutColums2=@OutColums2+',dbo.findscjdRecNo2(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
--第三次插入值列表--计划完成
if @OutColums3=''
set @OutColums3='dbo.findscjdRecNo3(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
else
set @OutColums3=@OutColums3+',dbo.findscjdRecNo3(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
--第四次插入值列表--接件日期
if @OutColums4=''
set @OutColums4='dbo.findscjdRecNo4(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
else
set @OutColums4=@OutColums4+',dbo.findscjdRecNo4(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
--第五次插入值列表--完成日期
if @OutColums5=''
set @OutColums5='dbo.findscjdRecNo5(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
else
set @OutColums5=@OutColums5+',dbo.findscjdRecNo5(序号,'+convert(varchar(2),@xh)+') 工序'+convert(varchar(2),@xh)
--被插入字段列表
if @InpColums=''
set @InpColums='工序'+convert(varchar(2),@xh)
else
set @InpColums=@InpColums+',工序'+convert(varchar(2),@xh)
set @xh=@xh+1
end
set @mysql=@mysql+@FildList+')'
set @OutColums1='insert into @mytemp ('+@OutConst+'工序,'+@InpColums+') select '+@OutConst+'''工序'' 工序 ,'+@OutColums1+' from ywdd where '+@SQLQualification--第一条插入语句
set @OutColums2='insert into @mytemp ('+@OutConst+'工序,'+@InpColums+') select 序号,NULL 客户,NULL 订单编号,NULL 品名,NULL 材质,NULL 成品尺寸,NULL 数量,NULL 预交期,''计划开始'' 工序 ,'+@OutColums2+' from ywdd where '+@SQLQualification--第二条插入语句
set @OutColums3='insert into @mytemp ('+@OutConst+'工序,'+@InpColums+') select 序号,NULL 客户,NULL 订单编号,NULL 品名,NULL 材质,NULL 成品尺寸,NULL 数量,NULL 预交期,''计划完成'' 工序 ,'+@OutColums3+' from ywdd where '+@SQLQualification--第三条插入语句
set @OutColums4='insert into @mytemp ('+@OutConst+'工序,'+@InpColums+') select 序号,NULL 客户,NULL 订单编号,NULL 品名,NULL 材质,NULL 成品尺寸,NULL 数量,NULL 预交期,''接件日期'' 工序 ,'+@OutColums4+' from ywdd where '+@SQLQualification--第四条插入语句
set @OutColums5='insert into @mytemp ('+@OutConst+'工序,'+@InpColums+') select 序号,NULL 客户,NULL 订单编号,NULL 品名,NULL 材质,NULL 成品尺寸,NULL 数量,NULL 预交期,''完成日期'' 工序 ,'+@OutColums5+' from ywdd where '+@SQLQualification--第五条插入语句
set @mysql=@mySQL+char(13)+@OutColums1+char(13)+@OutColums2+char(13)+@OutColums3+char(13)+@OutColums4+char(13)+@OutColums5+char(13)
set @mysql=@mysql+'select '+@OutConst+'工序,'+@InpColums+' from @mytemp order by 序号,myid'
exec (@mySQL)
GO
分享到:
相关推荐
利用OLE自动化存储过程调用dll 1.创建类库程序集 namespace PB_ExtendProcedure { public class ExtendProcedure { public string SayHi() { return "hello world"; } } } 2.生成动态链接库并注册到系统中...
实例272 动态创建视图 实例273 通过视图更改数据 实例274 删除视图 8.6 存储过程 实例275 创建存储过程 实例276 删除存储过程 实例277 在程序中使用存储过程 实例278 调用具有输出参数的存储过程 实例279 编写扩展...
案例4 动态创建和删除文件夹及显示其是否存在 案例5 动态获取文件夹中的文件 案例6 动态搜索文件或文件夹 案例7 动态显示磁盘容量图表 案例8 动态移动文件 案例9 动态复制文件 案例10 动态调用可执行EXE文件 ...
案例4 动态创建和删除文件夹及显示其是否存在 案例5 动态获取文件夹中的文件 案例6 动态搜索文件或文件夹 案例7 动态显示磁盘容量图表 案例8 动态移动文件 案例9 动态复制文件 案例1O 动态调用可执行EXE文件 案例11 ...
案例4 动态创建和删除文件夹及显示其是否存在 案例5 动态获取文件夹中的文件 案例6 动态搜索文件或文件夹 案例7 动态显示磁盘容量图表 案例8 动态移动文件 案例9 动态复制文件 案例1O 动态调用可执行EXE文件 案例11 ...
案例4 动态创建和删除文件夹及显示其是否存在 案例5 动态获取文件夹中的文件 案例6 动态搜索文件或文件夹 案例7 动态显示磁盘容量图表 案例8 动态移动文件 案例9 动态复制文件 案例1O 动态调用可执行EXE文件 案例11 ...
案例4.8 利用存储过程修改数据库中的数据 案例4.9 分页显示数据库表中的数据 案例4.10 动态查询数据库表中的数据 案例4.11 SQL Server服务的开启和断开 本章小结 第5章 水晶报表和打印处理技术 案例5.1 水晶...
cc实例214 动态创建视图 cc实例215 通过视图更改数据 cc实例216 删除视图 8.6 触发器 cc实例217 创建触发器 cc实例218 在程序中使用触发器 8.7 存储过程 cc实例219 创建存储...
cc实例214 动态创建视图 cc实例215 通过视图更改数据 cc实例216 删除视图 8.6 触发器 cc实例217 创建触发器 cc实例218 在程序中使用触发器 8.7 存储过程 cc实例219 创建存储...
8.3 更新数据 cc实例210 批量修改数据 cc实例211 将指定字段数据为空的记录添上数据 8.4 删除数据 cc实例212 删除单条数据 cc实例213 删除数据库中无用处的记录 8.5 视图 cc实例214 动态创建视图 cc...
实例214 动态创建视图 实例215 通过视图更改数据 实例216 删除视图 8.6 触发器 实例217 创建触发器 实例218 在程序中使用触发器 8.7 存储过程 实例219 创建存储过程 实例220 删除存储过程 实例221 在程序...
实例214 动态创建视图 实例215 通过视图更改数据 实例216 删除视图 8.6 触发器 实例217 创建触发器 实例218 在程序中使用触发器 8.7 存储过程 实例219 创建存储过程 实例220 删除存储过程 实例221 在程序...
可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速开发程序。支持代码自动更正,...