下面是在存储过程中临时表的使用
create PROCEDURE insertGoodsPlan
(
@billCode varchar(50)
)
AS
BEGIN
declare @goodsId nvarchar(30)
declare @gcount numeric --需求数量
declare @KHWLID nvarchar(30)
begin
select @KHWLID=WLID from SALEORDER where BILLCODE=@billCode
select a.goodsid,a.UNITID,sum(GCOUNT) as XQCount,
(select sum(ENCount) as ENCount from (
select sum(ia.STCount+ia.CICount-ia.COCount) as ENCount from BASE_STGOODS as ia where ia.GOODSID=a.goodsId and ia.WLID=@KHWLID
union
select sum(ia.STCount+ia.CICount-ia.COCount) as ENCount from BASE_STGOODS as ia where ia.GOODSID=a.goodsId and (ia.WLID='' or ia.WLID is null)
) as ib
) as ENCount,
(select sum(GCOUNT) as GCOUNT from PRODUCE_TASKSDETAIL where GOODSID=a.goodsid and ISSubtract='0') as GCOUNT
into #a
from PRODUCE_TASKSDETAIL as a
where SALEORDER_BILLCODE=@billCode group by a.goodsid,a.UNITID
-- 向物料需求计划表中插入相应的数据
insert into PRODUCE_PLANGOODS(SALEORDER_BILLCODE,GOODSID,KHWLID,UNITID,XQCount,ENCount,KYCount)
select @billCode,goodsId,@KHWLID,UNITID,gCount,ENCount,ENCount-GCOUNT from #a
drop table #a
end
end
临时表
1.可以创建本地和全局临时表。本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。
2.本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符
(##table_name)。
SQL 语句使用 CREATE TABLE 语句中为 table_name
指定的名称引用临时表:
CREATE TABLE #MyTempTable
(cola INT PRIMARY KEY)
INSERT INTO #MyTempTable
VALUES (1)
drop table #MyTempTable
select * into #a from tableName --把表结构和数据都添加到了临时表中
insert into PRODUCE_PLANGOODS
(
SALEORDER_BILLCODE,
GOODSID,
KHWLID,
UNITID,
XQCount,
ENCount,
KYCount)
select @billCode,goodsId,@KHWLID,UNITID,gCount,ENCount,
ENCount-GCOUNT from #a
--这样就把临时表中的数据都添加到了表中
分享到:
相关推荐
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
Oracle,Precedure,临时表,返回结果集
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。
一个选查询后插入到一个临时表的oracle函数
Mysql 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享
存储过程,要用到指针,临时表 存储过程,要用到指针,临时表 存储过程,要用到指针,临时表 存储过程,要用到指针,临时表
目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。 当然在Oracle中创建分区是一种不错的选择
NULL 博文链接:https://fruitking.iteye.com/blog/1447333
sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...
使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样可以省去很多自定义的代码。这样的操作对于存储过程内基于表函数的操作变得非常容易操作。 表...
首先,需要编写存储过程,该存储过程需要一个字符型的输入参数,并将报表显示的数据保存在一个临时表中。然后,在自定义报表中,选择好帐夹后,新建一个报表,然后输入调用存储过程的语句。最后,将报表的数据源设置...
资源包中囊括了MySQL数据库中的存储过程的使用包含的基本结构及日常所使用到的基本函数的使用【包括java端调用存储过程,创建临时表,动态执行sql语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
包括两个存储过程,一个是建立临时表用来存储需要的数据,另一个利用临时表进行操作。
orcl 创建临时表 的sql 存储过程中使用 exec immediate '' 有时提示 权限问题 虽然已经grant create any table to user 了 但还是不行,待解决
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与...
存储过程使用游标、临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态。(任务完成) 改存储过程包含了大量相关知识,特此记录,以便此后使用! 为...
实验5.1 存储过程的建立与使用 一、实验目的 理解存储过程的概念、作用、建立和调用方法。 二、实验原理 使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程...
在存储过程中,可以使用临时表和游标来实现复杂的商业逻辑。但是,需要注意在使用完成之后删除临时表,并关闭游标。 SQL Server存储过程是一种强大的数据库对象,可以提高软件系统的可维护性和灵活性。通过编写高效...
详细介绍了mysql使用临时表实现强大的存储过程,怎样获得存储过程的返回值,使用了临时表,游标等方法。