存储过程 根据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

...全文
182 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.批号)
内容概要:本文围绕基于改进灵敏度分析的有源配电网智能软开关优化配置展开研究,以IEEE33节点标准配电系统为仿真案例,提出了一种结合改进灵敏度指标的优化配置方法。该方法通过分析节点电压灵敏度、功率损耗灵敏度等关键电气特性,精准识别配电网中适合部署智能软开关的关键位置,并结合优化算法实现软开关的最优选址与定容。研究有效提升了配电网对分布式电源的接纳能力,改善了电压质量,降低了网络损耗,增强了系统的运行灵活性与经济性。Matlab代码实现部分提供了完整的仿真流程与算法验证,确保研究成果具备良好的可复现性与工程应用潜力。; 适合人群:具备电力系统分析基础,从事配电网优化、智能电网、分布式能源接入等相关领域的科研人员及研究生。; 使用场景及目标:① 掌握灵敏度分析在配电网规划中的实际应用;② 学习智能软开关(SOP)的优化配置模型与求解方法;③ 借助IEEE33节点系统开展相关课题仿真研究与论文复现;④ 提升Matlab在电力系统优化中的编程与建模能力。; 阅读建议:建议结合Matlab代码逐行理解算法实现过程,重点关注灵敏度指标的构建逻辑与优化模型的约束条件设定,同时可拓展至不同场景(如高渗透率光伏接入)进行对比分析,深化对智能软开关调控作用的理解。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 文件名"耐克抢鞋监控1.27.5.rar"代一种专门用于自动化监测与购买耐克品牌鞋品的计算机程序。该压缩文件标注的版本号1.27.5,明该应用程序或许经历了反复的迭代与改进,以便应对持续演变的网络状况及购鞋需求。所提及的“自动执行购买流程、完成支付环节、未引发恶意软件警报、易于操作、附带使用说明”是此款程序的核心特性。自动化购买功能意指用户无需进行手动页面刷新或输入交易细节,软件将自动执行这些操作,从而增加抢购的达成率。未触发反病毒警报的声明明该程序在运行时不会激活安全防护软件的警告,这可能是通过代码优化或采取安全策略达成的,尽管这并不完全排除潜在的安全隐患。易于操作特性意味着该软件对用户的技术水平要求不高,即使是计算机操作的初学者也能迅速掌握。附带使用指南则显示软件提供了详尽的操作手册,旨在帮助用户更有效地理解和使用该工具。所涉及的关键词进一步突出了软件的主要用途:耐克品牌、自动购买、支付处理及安全性能。这明该程序是针对耐克产品的抢购而设计的,并且覆盖了从商品选择到最终支付的整个交易过程。在【压缩文件内包含的文件清单】中,仅列出了一个条目:“耐克抢鞋监控1.27.5”。这种情况通常暗示压缩文件内仅包含主要的应用程序文件,或许还附带有配置文件、说明文档、使用教程及其他辅助性文件。主程序文件可能是.exe或.jar格式,前者为适用于Windows系统的可执行文件,后者则可能是基于Java语言编写的跨平台应用程序。该软件的功能机制或许运用了网页数据获取技术,例如HTTP/HTTPS通信请求,并可能借助Web自动化工具(例如Selenium)来模拟用户行为,实现自动填写单...

34,875

社区成员

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

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