存储过程 根据a,b表添加更新c表.~~~~~~~~~~~~~~~~~~

caoqinghua 2004-11-22 11:38:45
如题

数据库表如下
a 表
序号 所属单位 所属供应商
1 xxxx yyyy
2 cccc zzzz
3 bbbb hhhh

b 表
序号 货物 规格 计量单位 批号 货物失效日期 数量
1 a x z 20010101 2001-11-01 10
1 b x z 20010101 2001-11-01 20

2 c y q 20030506 2003-05-06 10
2 d w 5 20030506 2003-05-06 200

c 表
流水号 所属单位 所属供应商 货物 规格 计量单位 批号 货物失效日期 数量
1 xxxx yyyy a x z 20010101 2001-11-01 100

a 表中的序号和b 表中的序号是1对多的关系

我根据传递的"序号"参数 把 a,b表中的数据更新或者添加到 c 表中
1)如果c表中存在 相同的单位,相同的供应商,相同货物,相同批号 的数据,则 更新c表中的数量
2)如果 c表中没有 相同的单位,相同的供应商,相同货物,相同批号 的数据, 则,根据a,b表添加
到c表

help me

...全文
180 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
八爪鱼-杭州 2004-11-23
  • 打赏
  • 举报
回复
select 流水号, 货物, 规格, 计量单位, 批号,货物失效日期,数量,
所属单位=(select 所属单位 from a where a.序号 = b.序号) ,
所属供应商=(select 所属供应商 from a where a.序号 = b.序号)
into #t
from b


insert into c(流水号, 货物, 规格, 计量单位, 批号,货物失效日期,数量,所属单位,所属供应商)
select 流水号, 货物, 规格, 计量单位, 批号,货物失效日期,数量,所属单位,所属供应商
from #t as t1,c as t2
where t1.流水号!=t2.流水号 or t1.货物!=t2.货物 or....

update c
set 数量=数量+select isnull( (select sum(数量) from #t where
where t1.流水号=t2.流水号 and t1.货物=t2.货物... ))
Angelnet 2004-11-23
  • 打赏
  • 举报
回复
收藏
qizhanfeng 2004-11-23
  • 打赏
  • 举报
回复
邹建的对
caoqinghua 2004-11-23
  • 打赏
  • 举报
回复
谢谢各位,zjsen(星愿) zjcxc(邹建) davorsuker39(大狐狸)
一会儿揭贴
zjcxc 元老 2004-11-23
  • 打赏
  • 举报
回复
应该先更新,再插入的,否则插入的数据也会被更新一次,降低了效率
davorsuker39 2004-11-23
  • 打赏
  • 举报
回复
select 流水号, 所属单位=(select 所属单位 from a where a.序号 = b.序号) ,
所属供应商=(select 所属供应商 from a where a.序号 = b.序号),货物, 规格, 计量单位, 批号,货物失效日期,数量
into #table
from b ---------使用中间表过渡
insert into c(流水号, 所属单位,所属供应商,货物, 规格, 计量单位, 批号,货物失效日期,数量)
select 流水号, 所属单位,所属供应商,货物, 规格, 计量单位, 批号,货物失效日期,数量
from #table as t1,c as t2
where t1.所属供应商<>t2.所属供应商 and t1.货物<>t2.货物 and t1.计量单位<>t2.计量单位 and t1.批号<>t2.批号
update c
set 数量=数量+(select isnull(sum(数量),0) from #table a where t1.所属供应商=t2.所属供应商 and t1.货物=t2.货物 and t1.计量单位=t2.计量单位 and t1.批号=t2.批号)
zjcxc 元老 2004-11-23
  • 打赏
  • 举报
回复
--处理的存储过程
create proc p_process
@序号 int
as
set xact_abort on
begin tran
--先更新已经存在的
update c set 数量=b.数量
from a,b,c
where a.序号=@序号 and b.序号=@序号 and a.序号=b.序号
and a.所属单位=c.所属单位 and a.所属供应商=c.所属供应商
and b.货物=c.货物 and b.批号=c.批号

--插入不存在的
insert c(所属单位,所属供应商,货物,规格,计量单位,批号,货物失效日期,数量)
select a.所属单位,a.所属供应商,b.货物,b.规格,b.计量单位,b.批号,b.货物失效日期,b.数量
from a,b,c
where a.序号=@序号 and b.序号=@序号 and a.序号=b.序号
and not exists(
select * from c
where a.所属单位=c.所属单位 and a.所属供应商=c.所属供应商
and b.货物=c.货物 and b.批号=c.批号)
源码链接: https://pan.quark.cn/s/53617c93469f IGES(Initial Graphics Exchange Specification)是一种开放性的标准格式,用于在不同CAD(计算机辅助设计)系统之间进行数据交换。该格式支持用户在不同软件平台之间传输3D几何模型,进而达成跨平台的设计共享与协同作业。IGES查看器是专门设计用来处理这些IGES文件的工具,而“IGES查看器”即是一个应用程序,它能够协助用户直接打开并检视IGES或igs(IGES的文件扩展名)文件。在CAD领域中,数据交换是一项核心议题,因为不同的设计软件通常采用各自独有的专有格式来储存几何数据。IGES格式的问世,有效应对了这一问题,使得数据能够在Autodesk的AutoCAD、SolidWorks、CATIA、UGS NX等多种CAD软件之间进行传输。这种格式能够兼容多种3D几何类型,涵盖线框、曲面以及实体模型,同时还包括注释、尺寸和其他非几何信息。“IGES查看器”作为一个独立的应用程序,其主要功能涵盖以下方面:1. **文件打开与浏览**:用户可借助该工具直接打开IGES或igs文件,无需借助原始的CAD软件。这对于未安装CAD软件或需要迅速预览模型的用户而言极为便利。2. **3D模型显示**:它能够展示IGES文件中的3D几何模型,包括线框、曲面和实体,用户可从多个视角检视模型,并调整旋转、平移和缩放,以获得全面的视觉感受。3. **视图操作**:提供多样化的视图控制选项,如正视图、侧视图、俯视图,以及自由视角,帮助用户更清晰地理解模型结构。4. **模型分析**:可能包含测量功能,例如长度、宽度、高度的测量,或角度、距离的计算,便于对模型...
内容概要:本文围绕一篇发于超级顶刊TAC的长文展开复现研究,聚焦于线性二次型调节器(LQR)的直接自适应学习方法,提出了一种数据驱动的策略优化框架。该研究摆脱了传统控制方法对精确系统模型的依赖,通过引入在线数据进行策略迭代与优化,实现了在未知或部分已知动态系统下的高性能控制。文中详细阐述了算法的设计原理、收敛性分析及其实现流程,并提供了完整的Matlab代码实现,便于读者验证与进一步拓展。研究体现了现代控制理论向数据驱动、自适应方向发展的趋势,具有较强的理论深度与工程应用价值。; 适合人群:具备自动控制理论基础、优化算法背景及Matlab编程能力的研究生、博士生及从事控制领域科研工作的工程师,尤其适合致力于自适应控制、强化学习与最优控制交叉方向的研究者。; 使用场景及目标:①深入理解LQR问题的数据驱动求解范式;②掌握策略迭代、自适应动态规划在最优控制中的实现方法;③复现顶刊成果,支撑高水平论文写作与科研项目申报;④为复杂系统无模型控制提供技术储备与实践参考。; 阅读建议:建议读者结合TAC原文进行对照学习,重点关注算法推导与代码实现之间的映射关系,动手调试代码以加深对参数设置、收敛条件及数值稳定性的理解,同时可尝试将其迁移至其他控制任务中进行验证与改进。
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 连续投影算法(Sequential Projection Algorithm, SAP)属于一种在线性降维领域的高维数据分析技术,其目的是寻找低维子空间,并且这种技术经常被应用于特征选择和数据可视化等场景。MATLAB作为一个功能强大的数值计算和科学计算平台,是执行此类算法的一个非常适合的环境。在此压缩包中,包含了基于MATLAB的SAP算法的具体实现,用户需要先将要处理的数据存入Excel文件,然后通过执行MATLAB程序来启动计算过程。SAP算法的核心概念在于采用迭代方法,每一次迭代中都会挑选一个与当前子空间正交的新向量,以此来逐步构建出一个低维的投影空间。这个迭代过程会持续进行,直到所有关键特征都被纳入考虑范围或者达到了事先设定的降维标准。SAP算法的一个显著好处在于其操作简便和运行高效,能够在尽可能保留原始信息的前提下,有效降低计算的复杂度。在MATLAB程序中运用SAP算法通常需要遵循以下几个步骤:1. **数据准备**:用户必须在Excel中正确地组织数据,确保所有数据都是数值型的,并且每个样本数据应该分布在不同的列中,每行则对应一个特征。2. **数据导入**:在MATLAB环境中,用户可以利用`readtable`或`xlsread`等函数来导入存储在Excel文件中的数据。3. **调用SAP函数**:用户需要执行专门为SAP算法编写的MATLAB函数,并将数据矩阵作为参数传递给该函数。函数内部会进行一系列迭代计算,以确定最佳的低维投影方案。4. **结果分析**:在计算完成后,SAP函数会输出一个已经降维的数据矩阵,这个矩阵可以用来进行后续的数据分析、模型...

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧