存储过程插入检索的数据
A. sql server 如何利用 存储过程 建立一个新表,并向其中插入来自查询的数据
直接insert into ... select ... 就行了。
例如,从A、B查询结果,插入到C表:
insert into C(C1,C2)
select A.C1, B.C2 from A inner join B
on A.ID = B.ID
B. 建立一个存储过程 需要把查到的数据插入到进去 并且判断插入的数据是否存在 如果存在就不再插入。求语句
设表A(ID number),存储过程如下:
create or replace procere P_insert(V_ID in number) as
i number:=0;
begin
select count(*) into i from A where ID=V_ID;
if i=0 then
insert into A values(V_ID);
end if;
commit;
end;
C. mysql存储过程实现数据查询与插入
INSERT into total_score_tmpD(
DepartmentNameEnd, StaffId,
StaffName,
CountPerHour,
SkillScoreDisCount ,
DealCount ,
ValueCount,
ValueCountDisCount
)
SELECT DepartmentName, StaffId,
StaffName,
3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*AVG(DealAvgSeconds/WaitSeconds) ,
Round(3600/(Select DealAvgSeconds from deal_name_type where DealId='121300')*avg(DealAvgSeconds/WaitSeconds)/(select Max(SunValue) From total_score_tmp33)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作技能权重'),2),
count(StaffId),
Sum(DealValue),
Round(Sum(DealValue)/(select Max(SunValue) From total_score_tmp44)*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='工作效益权重'),2)
From deal_record
where DepartmentName like concat(DepartmentName2,'%') and DealDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;
insert into total_score_tmpc(DepartmentName , StaffId,
StaffName,
ClientNum ,
EvaluateScore ,
EvaluateScoreDisCount)
SELECT DepartmentName, StaffId,
StaffName,
count(StaffId),
Sum(EvaluatePrice),
Round((Sum(EvaluatePrice)/(select Max(SunValue) From total_score_tmp22))*(select CAST(OptionValue as decimal) from sys_info WHERE OptionName='服务评价权重'),2)
From evaluate_record
where DepartmentName like concat(DepartmentName2,'%') and EvaluateDateTime BETWEEN STARTDealDateTime and endDealDateTime
group by StaffId;
D. ORACLE存储过程创建临时表并插入数据。
存储过程创建表后,在编译阶段数据库中并没有该表。这时向表中插入数据,会提示表不存在。所以,插入语句要赋值到变量里,通过e来执行。
E. 用oracle存储过程将一张表的数据查出插入另一张表
1、创建测试表,
create table test_tbl_1(id number, value varchar2(20));
create table test_tbl_2(id number, value varchar2(20));
F. Oracle 存储过程:如何将查询到的数据插入到另一个用户名下的一张表中
看你的这两个用户是不是在同一个数据库中,如果不是同一个数据库,可以建立一个DBLINK来连接;如果是在同意个库内可以这样写:
insert into A(column1,column2,column3)
select bbb.B.columns1,bbb.B.columns2,bbb.B.columns3 from bbb.B
where bbb.B.columns1=0;