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

...全文
148 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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.批号)
# 主成分分析PCA降维算法Python实现 - 数据降维和特征提取 ## 项目简介 本项目提供了主成分分析(Principal Component Analysis, PCA)算法的完整Python实现,包含从数据预处理到结果可视化的全套功能。PCA是一种经典的无监督降维算法,通过线性变换将高维数据投影到低维空间,同时保持数据的最大方差,广泛应用于数据降维、特征提取、数据可视化等领域。 ### 功能特点 - **完整的PCA算法实现**:包含数据标准化、协方差矩阵计算、特征值分解等核心步骤 - **多种数据生成器**:内置多种类型的测试数据生成功能 - **丰富的可视化功能**:支持解释方差图、散点图、双图、热力图等多种可视化方式 - **灵活的参数配置**:支持自定义主成分数量、标准化选项等 - **全面的分析工具**:包含特征重要性分析、重构误差计算、最优成分数量确定等 - **详细的示例代码**:提供多个应用场景的完整示例 ## 安装说明 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用说明 ```bash # 运行所有演示 pytho ```bash # 运行所有演示 python main.py --demo all # 运行特定演示 python main.py --demo iris # 鸢尾花数据集分析 python main.py --demo high_dim # 高维数据降维 python main.py --demo correlated # 相关性数据分析 python main.py --demo comprehensive # 综合分析 # 指定输出目录 python main.py --output results ```
基于Javaweb的机房管理系统的设计与实现编程环境:idea2022平台,jdk1.8,tomcat8.5编程语言:java语言,编程技术:前端vue,div,css,后端:springboot框架,数据库:mysql5.7版本,Navicat Premium 12插件前台+后台前台学生注册,登录机房安全公告列, 点击查看详情机房信息列(点击搜索机房,查看到机房的详细情况)上机预约:选择机房,查看电脑信息,显示多少台电脑,点击可以查看机房的电脑详情,多少空闲的,点击可以预约电脑(填写预约时间,预约人)机房消防检公布设备故障上报:注册的学生也可以进行设备故障报修后台管理员管理员信息管理机房安全公告管理机房消防检查管理(记录每次的消防检查,对检查结果进行公布)教师信息管理维修人员管理注册学生管理,审核机房信息管理(多个机房)设备信息管理(电脑设备)填写CPU,内存,品牌,显卡等基本信息日志信息管理教师教师资料修改机房上机预约管理软件设备报修,查看维修结果硬件设备报修,查看维修结果上机信息管理:设置上机信息,下机信息,查看上机时间,查看到历史上机信息维修人员资料信息修改软件设备报修管理,填写维修结果硬件设备报修管理,填写维修结果设备故障报修管理:主要是针对学生前台提交的报修进行管理,处理学生学生资料修改我的预约信息我的上机:点击选择某个电脑进行上机,只能选择预约同意的电脑进行上机,我的下机:上机结束后,点击可以下机,并且计算出上机时间我的历史上机我的设备故障报修管理

34,871

社区成员

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

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