`
isiqi
  • 浏览: 16360069 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

一个跨表触发器(等整理)

Go 
阅读更多

alter trigger tri_getXBDel on 成型台账1
after delete
as
declare @mothsum int,@DEL_ID int,@DEL_date char(20)
select @DEL_ID=ID ,@DEL_date=日期 from deleted
begin
begin
update 修补台账1 set
[1]=(select sum(成型台账1.[1]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[2]=(select sum(成型台账1.[2]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[3]=(select sum(成型台账1.[3]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[4]=(select sum(成型台账1.[4]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[5]=(select sum(成型台账1.[5]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[6]=(select sum(成型台账1.[6]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[7]=(select sum(成型台账1.[7]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[8]=(select sum(成型台账1.[8]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[9]=(select sum(成型台账1.[9]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[10]=(select sum(成型台账1.[10]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[11]=(select sum(成型台账1.[11]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[12]=(select sum(成型台账1.[12]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[13]=(select sum(成型台账1.[13]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[14]=(select sum(成型台账1.[14]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[15]=(select sum(成型台账1.[15]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[16]=(select sum(成型台账1.[16]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[17]=(select sum(成型台账1.[17]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[18]=(select sum(成型台账1.[18]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[19]=(select sum(成型台账1.[19]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[20]=(select sum(成型台账1.[20]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[21]=(select sum(成型台账1.[21]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[22]=(select sum(成型台账1.[22]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[23]=(select sum(成型台账1.[23]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[24]=(select sum(成型台账1.[24]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[25]=(select sum(成型台账1.[25]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[26]=(select sum(成型台账1.[26]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[27]=(select sum(成型台账1.[27]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[28]=(select sum(成型台账1.[28]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[29]=(select sum(成型台账1.[29]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[30]=(select sum(成型台账1.[30]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[31]=(select sum(成型台账1.[31]) from 成型台账1,deleted where 成型台账1.ID=deleted.ID and 成型台账1.日期=deleted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' ))
where 修补台账1.ID=@DEL_ID and 修补台账1.日期=@DEL_date
end
begin
select @mothsum=修补台账1.当月累计 from 修补台账1,deleted where 修补台账1.ID=deleted.ID and 修补台账1.日期=deleted.日期

if(@mothsum is null)
begin

delete from 修补台账1 where 修补台账1.ID=@DEL_ID and 修补台账1.日期=@DEL_date

end
end
end

==============================================================

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER trigger tri_getXB on 成型台账1
for insert,update
as

declare @DEL_ID int,@DEL_date char(20)
select @DEL_ID=ID ,@DEL_date=日期 from inserted
if exists(select * from 修补台账1,inserted where 修补台账1.ID=inserted.ID and 修补台账1.统计方式='收货数'
and 修补台账1.日期=inserted.日期)
begin
update 修补台账1 set
[1]=(select sum(成型台账1.[1]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[2]=(select sum(成型台账1.[2]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[3]=(select sum(成型台账1.[3]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[4]=(select sum(成型台账1.[4]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[5]=(select sum(成型台账1.[5]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[6]=(select sum(成型台账1.[6]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[7]=(select sum(成型台账1.[7]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[8]=(select sum(成型台账1.[8]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[9]=(select sum(成型台账1.[9]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[10]=(select sum(成型台账1.[10]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[11]=(select sum(成型台账1.[11]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[12]=(select sum(成型台账1.[12]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[13]=(select sum(成型台账1.[13]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[14]=(select sum(成型台账1.[14]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[15]=(select sum(成型台账1.[15]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[16]=(select sum(成型台账1.[16]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[17]=(select sum(成型台账1.[17]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[18]=(select sum(成型台账1.[18]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[19]=(select sum(成型台账1.[19]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[20]=(select sum(成型台账1.[20]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[21]=(select sum(成型台账1.[21]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[22]=(select sum(成型台账1.[22]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[23]=(select sum(成型台账1.[23]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[24]=(select sum(成型台账1.[24]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[25]=(select sum(成型台账1.[25]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[26]=(select sum(成型台账1.[26]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[27]=(select sum(成型台账1.[27]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[28]=(select sum(成型台账1.[28]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[29]=(select sum(成型台账1.[29]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[30]=(select sum(成型台账1.[30]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' )),
[31]=(select sum(成型台账1.[31]) from 成型台账1,inserted where 成型台账1.ID=inserted.ID and 成型台账1.日期=inserted.日期
and (成型台账1.统计方式='良品' or 成型台账1.统计方式='二等品' ))
where 修补台账1.ID=@DEL_ID and 修补台账1.日期=@DEL_date
end
else
begin
insert into 修补台账1(ID,日期,统计方式,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31])
select ID,日期,'收货数',[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31]
from inserted

end


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

分享到:
评论

相关推荐

    触发器详细讲解

    这也是触发器特有的功能,CHECK约束无法在多个表间进行这样的跨表检查。 4. **触发器的3种操作分析**: - `inserted`和`deleted`表:这两个逻辑表在触发器执行期间存在,分别用于存储新插入的行和被删除或更新前的...

    华为硬件笔试资源整理_he

    * 用一个3-8译码器和一个或门组成一个三人表决器 八、其他部分 * 判断对错:甲类功放输出功率为0时,功率管消耗的功率最大等 * 选择题:半导体二极管的重要特性之一是__等 本资源整理了华为硬件笔试相关知识点,...

    ORACLE数据库资料整理【经典】

    4. **视图设计**:视图是从一个或多个表中创建的虚拟表,可以简化复杂查询,隐藏敏感数据,或者提供特定用户的定制视图。 5. **触发器设计**:触发器是一种数据库对象,当满足特定事件(如INSERT、UPDATE或DELETE)...

    经典数据库面试题整理首发

    本资料"经典数据库面试题整理首发"聚焦于数据库面试中常见的问题,主要涵盖了Oracle和SQL Server两大主流数据库系统。以下是对这些知识点的详细解析: 1. **Oracle数据库**: - **SQL语法**:Oracle支持标准SQL,...

    oracle-MySQL笔记整理资料 适合初学者

    MySQL则是一款开源、轻量级的关系型数据库,适合中小型企业及互联网应用。其特点包括易用性、高效性和跨平台兼容性。MySQL的入门学习要点有: 1. 安装与启动:熟悉MySQL的安装步骤,掌握启动、停止数据库服务的方法...

    Oracle培训基础PPT(经典,自已整理非常实用,有截图)

    表空间是数据库的逻辑分区,可以包含多个数据文件,用于组织和存储数据库的不同部分,如系统表空间、用户表空间和临时表空间等。 Oracle数据库提供了丰富的特性和工具,例如,它支持触发器、存储过程、视图等高级...

    C# .Net应用资料整理

    - **Oracle数据库操作**:包括round()函数、dblink跨库查询、存储过程、序列和触发器的使用等,这些都是数据库管理的基础。 - **Windows Phone 7**:关于推送通知服务的学习,以及移动开发相关知识。 这个资料...

    SQL 面试问题大全英文版

    - 链接服务器是指向另一个数据库或数据源的引用,允许跨多个数据源执行查询。 - **什么是游标?** - 游标是一种允许逐行处理结果集的方法。尽管功能强大,但使用时应谨慎,因为它可能会降低性能。 - **子查询的属性...

    达内笔记(达内助教整理的)

    CSV(Comma Separated Values)是一种通用的数据交换格式,以逗号分隔每个字段,每一行代表一个记录。CSV 文件易于读取,可以用任何文本编辑器打开,并且大多数数据分析软件都能支持导入和导出 CSV 格式。这种格式常...

    SQL-Summary.rar_sql

    2. 视图:虚拟表,基于一个或多个表的查询结果,提供不同的数据视图。 3. 索引:提高数据检索速度的数据结构,如唯一索引、非唯一索引、主键索引和全文索引。 4. 存储过程:预编译的SQL语句集合,可以提高性能,实现...

    SQL工资管理系统课程设计报告

    在本课程设计报告中,我们将深入探讨如何使用SQL(Structured Query Language)来构建一个企业级的工资管理系统。这个系统旨在实现员工工资管理的系统化、规范化和自动化,以提升企业管理效率,实现与人事管理系统和...

    Java 笔记整理

    Hibernate是一个对象关系映射框架,它简化了Java应用程序与数据库的交互,通过将Java对象映射到数据库表,减少了手动编写SQL的需要。PL/SQL是Oracle数据库的编程语言,用于编写存储过程、函数和触发器。 【Web】 ...

    FPGA学习发展方向本人整理的 .docx

    1. **FPGA架构**:理解FPGA的基本构造,包括查找表(LUT)、可编程连线矩阵、触发器等,以及它们如何协同工作以实现数字逻辑功能。 2. **芯片选型**:学习如何根据项目需求选择合适的FPGA芯片,考虑因素包括逻辑...

    MySQL 安装步骤整理

    - 这样操作后,您可以在 C 盘根目录下找到一个名为“ProgramData”的文件夹。 - 进入该文件夹并删除其中的“mysql”文件夹(如果有)。 - 完成上述步骤后,请恢复隐藏设置,即重新勾选“隐藏受保护的操作系统文件...

    Sybase知识整理

    Hiffman和Robert Epstern于1984年创立,正式产品于1987年推出,标志着一个全新的数据库时代的开启。Sybase的三大主流版本分别是针对UNIX操作系统、Novell Netware环境以及Windows NT环境设计的,其中,UNIX版本特别...

    图书馆数据库课程设计报告.doc

    在本次图书馆数据库课程设计中,学生之远带领的小组进行了一个名为“图书馆管理系统”的项目,旨在模拟并实现一个实际图书馆的核心功能。这个项目覆盖了数据库设计的多个重要方面,包括需求分析、概念结构设计、...

    【硬件工程师面经整理29-FPGA】

    - **查找表(LUT)**:通常由多个输入端口和一个输出端口组成。每个输入组合对应一个输出值。 - **实现原理**:通过编程配置,LUT可以实现任何二进制函数。通常使用RAM作为底层硬件实现。 #### 8. IOB的主要组成...

    EXP命令:参数_举例_注意事项_问题与解决(整理汇)

    标题和描述均聚焦于Oracle数据库中的EXP命令,这是一种用于数据导出的重要工具,允许管理员或具有足够权限的用户将数据库中的数据和结构导出到一个二进制的转储文件中,以便进行备份、迁移或其他数据管理操作。...

Global site tag (gtag.js) - Google Analytics