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

...全文
165 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.批号)
内容概要:文章深入探讨了智慧交通系统中多源数据关联性薄弱的问题,现为时间戳异步、坐标系差异和语义理解分歧,根源在于技术标准碎片化、管理机制缺失和数据孤岛现象。该问题严重影响交通事件预测、设施预警和资源调度等核心场景的效能,导致决策延迟与效率下降。为破解这一瓶颈,文章提出构建“算法-规则-协同”三位一体的AI时空关联分析技术体系,融合时空图神经网络(ST-GNN)、知识图谱与联邦学习,实现多源异构数据的深度融合与价值挖掘。通过某特大城市落地案例验证,系统显著提升了时空对齐精度、事件响应效率和路网通行能力。未来需应对复杂环境干扰、动态关联难与语义鸿沟挑战,依托AI大模型、自进化引擎和6G通信技术推动数据关联范式升级,并建立统一标准与跨部门生态。; 适合人群:从事智慧交通、城市治理、AI算法研发及相关领域的技术人员、管理人员与政策制定者,具备一定数据分析或系统集成经验的专业人员; 使用场景及目标:①解决跨部门多源交通数据时空错位与语义不一致问题;②提升交通事件预测准确率、设施故障预警能力和运营调度效率;③指导AI驱动的交通数据中台建设与智能决策系统实施; 阅读建议:建议结合文中技术架构与实施路径,重点关注时空数据中台构建、AI模型选型适配与跨部门协同机制设计,在实际项目中分阶段推进试点验证,并参考《AI交通数据关联实施指南》建立数据质量监控体系。
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)内容概要:本文介绍了基于SE-ResNet网络的航空发动机寿命预测研究,依托C-MAPSS数据集,利用Matlab代码实现深度学习模型的构建与训练。该方法通过引入通道注意力机制(Squeeze-and-Excitation模块)增强ResNet对关键特征的提取能力,有效提升了发动机剩余使用寿命(RUL)预测的精度与鲁棒性。文中详细阐述了数据预处理、模型架构设计、训练流程及实验验证过程,展示了SE-ResNet在复杂工况下对发动机退化趋势的准确建模能力。; 适合人群:具备一定深度学习基础和Matlab编程经验,从事航空航天、故障诊断、预测性维护等相关领域的科研人员及工程技术人员,尤其适合研究生和中级以上研究人员。; 使用场景及目标:①应用于航空发动机健康管理(PHM)系统中的剩余寿命预测任务;②为工业设备的预测性维护提供高精度深度学习解决方案;③作为SE-ResNet在时间序列预测中应用的教学案例,推动注意力机制在网络设计中的实践。; 阅读建议:建议读者结合提供的Matlab代码进行实操演练,重点关注数据滑动窗口处理、SE模块的实现细节以及模型超参数调优策略,同时可尝试将该方法迁移至其他设备的寿命预测任务中以加深理解。

34,874

社区成员

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

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