下面是在存储过程中临时表的使用
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 存储过程,函数,临时表 存储过程包括输入返回,可供项目中遇到难题的人解决一下,我曾为此费了好大精力,最后总结出来共大家分享
存储过程,要用到指针,临时表 存储过程,要用到指针,临时表 存储过程,要用到指针,临时表 存储过程,要用到指针,临时表
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语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
包括两个存储过程,一个是建立临时表用来存储需要的数据,另一个利用临时表进行操作。
存储过程使用游标、临时表实现动态SQL查询 2020.3.24 用能第二周周二上午,任务需求:编写存储过程查询监测设备状态以及目标监测设备状态。(任务完成) 改存储过程包含了大量相关知识,特此记录,以便此后使用! 为...
orcl 创建临时表 的sql 存储过程中使用 exec immediate '' 有时提示 权限问题 虽然已经grant create any table to user 了 但还是不行,待解决
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与...
实验5.1 存储过程的建立与使用 一、实验目的 理解存储过程的概念、作用、建立和调用方法。 二、实验原理 使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程...
详细介绍了mysql使用临时表实现强大的存储过程,怎样获得存储过程的返回值,使用了临时表,游标等方法。
Oracle数据库创建临时表的过程以及和SQL Server临时表的不同点的对比的相关知识是本文我们主要要介绍的内容,接下来就让我们一起来了解一下这部分内容吧,希望能够对您有所帮助。...会话级临时表是指临时表中的
CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB...