在存储过程创建临时表,插入字段,更新字段

  1 CREATE PROCEDURE [dbo].[Proc_PX_Situation]
  2 @BMDateFrom nvarchar(50),  --报名时间 从
  3 @BMDateEnd nvarchar(50),  --报名时间 到
  4 @BenlonFenJu nvarchar(50) --所属分局
  5 AS
  6 begin
  7 --declare @SqlStr nvarchar(2000);
  8      create table #temp_table(
  9      Row_ID int,
 10                               RowGuid varchar(50),       --计划Guid
 11                               --PX_Plan
 12                               PlanName nvarchar(100),     --培训名称
 13                               UnitCount int,              --计划参加企业总数
 14                               UserCount int,              --计划参加人员总数
 15                               --PX_BaoM
 16                               BMUnitCount int,            --实际报名企业总数 某一个计划下面报名的 DanWeiName的数量,不重复
 17                               BMUserCount int,            --实际报名人员总数 某一个计划下面报名的 Count(UserGuid)
 18                               PayUnitCount int,              --实际交费企业总数
 19                               PayUserCount int,              --实际交费人员总数
 20                               PXUnitCount int,              --实际培训企业总数
 21                               PXUserCountt int ,            --实际培训人员总数
 22                               BaoMDNum nvarchar(50)      --报名点
 23                              -- BaoMdate datetime           --报名时间
 24                               )
 25
 26     insert into   #temp_table(
 27     Row_ID,
 28                               RowGuid ,       --计划Guid
 29                               --PX_Plan
 30                               PlanName ,    --培训名称
 31                               UnitCount ,   --计划参加企业总数
 32                               UserCount ,   --计划参加人员总数
 33                               --PX_BaoM
 34                               BMUnitCount , --实际报名企业总数 某一个计划下面报名的 DanWeiName的数量,不重复
 35                               BMUserCount , --实际报名人员总数 某一个计划下面报名的 Count(UserGuid)
 36                               PayUnitCount , --实际交费企业总数
 37                               PayUserCount , --实际交费人员总数
 38                               PXUnitCount , --实际培训企业总数
 39                               PXUserCountt , --实际培训人员总数
 40                               BaoMDNum      --报名点
 41                              -- BaoMdate       --报名时间
 42                               )
 43     (select Row_ID, RowGuid,PlanName,‘‘,‘‘,‘‘,‘‘,‘‘,‘‘,‘‘,‘‘,‘‘ from PX_Plan)
 44
 45     --统计start
 46
 47      --计划参加企业总数
 48      if @BenlonFenJu=‘‘
 49      update a set a.UnitCount=b.UnitCount from #temp_table a,
 50      (
 51      select RowGuid,UnitCount from px_plan
 52      )b where a.RowGuid=b.RowGuid
 53      else
 54      update a set a.UnitCount=b.UnitCount from #temp_table a,
 55      (
 56      select PlanGuid,UnitCount,BaoMDCode from PX_PlanBaoMD where BaoMDCode=@BenlonFenJu
 57      )b where a.RowGuid=b.PlanGuid
 58
 59      --计划参加人员总数
 60      if @BenlonFenJu=‘‘
 61      update a set a.UserCount=b.UserCount from #temp_table a,
 62      (
 63      select RowGuid,UserCount from px_plan
 64      )b where a.RowGuid=b.RowGuid
 65       else
 66      update a set a.UserCount=b.UserCount from #temp_table a,
 67      (
 68      select PlanGuid,UserCount,BaoMDCode from PX_PlanBaoMD where BaoMDCode=@BenlonFenJu
 69      )b where a.RowGuid=b.PlanGuid
 70
 71     --实际报名企业总数
 72     update  a set a.BMUnitCount=b.total  from  #temp_table  a,
 73     (
 74     select  planguid, count(distinct DanWeiGuid) total  from (
 75         select BMAddDate,planguid,DanWeiGuid  from View_PX_Plan_BaoM
 76             where BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
 77                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
 78                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]+‘%‘)
 79         )p group by p.planguid
 80     )b  where a.RowGuid=b.PlanGuid
 81
 82     --实际报名人员总数
 83     update a set a.BMUserCount=b.total from #temp_table a,
 84     (
 85     select planguid,count(UserGuid) total from (
 86         select BMAddDate,planguid,UserGuid from View_PX_Plan_BaoM
 87             where BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
 88                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
 89                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]+‘%‘)
 90         )p group by p.planguid
 91     )b where a.RowGuid=b.PlanGuid
 92
 93     --实际交费企业总数
 94     update a set a.PayUnitCount=b.total from #temp_table a,
 95     (select planguid,count(distinct DanWeiGuid) total from(
 96         select BMAddDate,planguid,DanWeiGuid  from View_PX_Plan_BaoM
 97             where IsPay=1
 98                 and BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
 99                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
100                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]+‘%‘)
101         )p group by p.planguid
102     )b where a.RowGuid=b.PlanGuid
103
104     --实际交费人员总数
105     update a set a.PayUserCount=b.total from #temp_table a,
106     (select planguid,count(UserGuid) total from(
107         select BMAddDate,planguid,UserGuid  from View_PX_Plan_BaoM
108             where IsPay=1
109                 and BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
110                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
111                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]+‘%‘)
112         )p group by p.planguid
113     )b where a.RowGuid=b.PlanGuid
114
115     --实际培训企业总数
116     update a set a.PXUnitCount=b.total from #temp_table a,
117     (select planguid,count(distinct DanWeiGuid) total from(
118         select BMAddDate,planguid,DanWeiGuid  from View_PX_Plan_BaoM
119             where IsPay=1 and IsPeiXun=1
120                 and BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
121                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
122                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]BenlonFenJu+‘%‘)
123         )p group by p.planguid
124     )b where a.RowGuid=b.PlanGuid
125
126     --实际培训人员总数
127     update a set a.PXUserCountt=b.total from #temp_table a,
128     (select planguid,count(UserGuid) total from(
129         select BMAddDate,planguid,UserGuid  from View_PX_Plan_BaoM
130             where IsPay=1 and IsPeiXun=1
131                 and BMAddDate >(case @BMDateFrom when ‘‘ then ‘1900-01-01‘ else @BMDateFrom end)
132                 and BMAddDate<(case @BMDateEnd when ‘‘ then GETDATE() else @BMDateEnd end)
133                 and BaoMDNum in    (select BaoMDCode from PX_PlanBaoMD where BaoMDCode like ‘%‘[email protected]+‘%‘)
134         )p group by p.planguid
135     )b where a.RowGuid=b.PlanGuid
136
137     --报名点
138     update a set a.BaoMDNum=b.BaoMDNum from #temp_table a,
139     (select distinct planguid,BaoMDNum from View_PX_Plan_BaoM)b where a.RowGuid=b.PlanGuid
140
141
142     --报名时间  --AddDate
143     --update a set a.BaoMdate=b.BMAddDate from #temp_table a,
144     --(select planguid,DanWeiGuid, BMAddDate from View_PX_Plan_BaoM)b where a.RowGuid=b.PlanGuid
145     --统计end
146
147        select * from #temp_table order by Row_ID DESC
148
149  end
150
151
152
153
154
155
156 GO

时间: 2024-10-15 00:11:58

在存储过程创建临时表,插入字段,更新字段的相关文章

mysql实例:在存储过程中创建临时表

在mysql的存储过程创建临时表的例子,是学习mysql 临时表操作的不错的例子. 操作步骤: mysql> mysql> mysql> CREATE TABLE Employee( //创建普通表 -> id int, -> first_name VARCHAR(15), -> last_name VARCHAR(15), -> start_date DATE, -> end_date DATE, -> salary FLOAT(8,2), ->

[转载]mysql创建临时表,将查询结果插入已有表中

今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取.我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些.然后还需要将查询的结果存储到临时表中.下面是创建临时表以及插入数据的例子,以供大家参考. A.临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表:1)定义字段  CREATE TEMPORARY TABLE tmp_table (      name VARCHAR(10)

sql 创建表、删除表 增加字段 删除字段操作

[转]sql 创建表.删除表 增加字段 删除字段操作 下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[

将一个表的字段更新到另一个表中去

描述 做一个需求需要记录用户留下签字意见时的职位信息,并且签字意见中留下的职位信息不随他的职位的调动变化而变化.在标准产品的签字意见表里面没有记录职位信息的字段,这就需要我们添加一个字段用于存储当前操作者的职位信息,对于新的数据我们可以在插入签字意见的时候一并插入.但是对于历史数据,我们就需要通过SQL来更新,这样在升级客户系统的时候直接运行一个SQL脚本就将历史数据的职位字段更新为记录的操作者当前的职位信息. 假设表HRM表示用户表,结构如下: 字段名字 类型 备注 ID NUMBER 用户i

Entity Framework 6 Recipes 2nd Edition(10-10)译 - &gt; 为TPH继承的插入、更新、删除操作映射到存储过程

10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product )(见Figure 10-13). 而且为这个表的每种产品创建了创建了派生模型,这个模型如Figure 10-14. Figure 10-13. 一个含有鉴别列(ProductType)的产品表, 表的每行按该列的值划分不同的产品 Figure 10-14. TPH继承形式的模型 接下来把这个模型

Django 更新字段

Django在1.7以后的版本提供数据迁移命令,用来在修改模型中的字段,更新到数据库 1. python manager.py makemigrations 命令用来创建迁移文件版本的 2. python manage.py migrate 用来同步sql语句到数据库 3 . python manage.py sqlmigrate polls 0001 这样还可以把相应模型版本显示成sql语句

Mysql 升级到 5.6 后插入语句时间字段报错:Incorrect datetime value: &#39;&#39; for column &#39;createtime&#39;

今天部署服务器项目运行,当遇见有时间数据对象的插入和更新操作的时候,就报错,如下: Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'createtime' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868) at com.mysql.jdbc.My

如何用SQL语句在指定字段前面插入新的字段?

如何用SQL语句在指定字段前面插入新的字段? 2007-10-17 09:28:00|  分类: 笔记|举报|字号 订阅 create proc addcolumn @tablename varchar(30), --表名 @colname varchar(30), --要加的列名 @coltype varchar(100), --要加的列类型 @colid int --加到第几列 as declare @colid_max int declare @sql varchar(1000) --动态

mysql创建临时表,将查询结果插入已有的表

A.临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表:1)定义字段  CREATE TEMPORARY TABLE tmp_table (      name VARCHAR(10) NOT NULL,       time date  NOT NULL  )更高级点就是:create temporary  TABLE `temtable` (  `jws` varchar(100) character set utf8 collate utf8_bi