展开全部
楼上的是ORACLE的存储过程语法,SQLSERVER的语法略有不同。
举个例子:
员工表(tb_employee)字段如下 emp_id 员工编号, emp_nm 员工姓名, dept_id 所属部门编号, salary 工资收入
编写存储过程查询某部门员工的工资总和。
那么分析可以知道,这个存储过程的输入参数就是部门编号
create procedure sp_sum_salary
@dept_id varchar(20)
as
--------直接以查询语句输出
select sum(salary)
from tb_employee
where dept_id = @dept_id
举个例子:
员工表(tb_employee)字段如下 emp_id 员工编号, emp_nm 员工姓名, dept_id 所属部门编号, salary 工资收入
编写存储过程查询某部门员工的工资总和。
那么分析可以知道,这个存储过程的输入参数就是部门编号
create procedure sp_sum_salary
@dept_id varchar(20)
as
--------直接以查询语句输出
select sum(salary)
from tb_employee
where dept_id = @dept_id
追问
能详细点吗? 我SQL很差
追答
关键看你要的是什么样的功能
我只是举了一个很简单的例子。
我帮您解释一下吧,然后看看您需要的什么样的情况,自己可以做做看。
create procedure sp_sum_salary ---------存储过程名字
@dept_id varchar(20) -----------定义参数和类型,如果多个参数使用逗号隔开
as ---------这个是固定格式,套用就行了
--------下边是存储过程的具体程序,具体程序就是你自己要处理的程序段了。
-------可能常用到的有几种情况
-----1.声明变量 declare @变量名称 变量类型 声明多个使用多个declare
-----2.给变量赋值 set @变量名称 = 值
-----3.通过select返回结果给变量(返回结果必须唯一才行) select @变量 = 字段 from 表 where ...
-----4.调用其他存储过程 exec 存储过程 参数1, 参数2, ...
-----5.判断语句 IF 条件
BEGIN
END
暂时能想到的也就这么多,根据你的实际需要,你套用格式,就可以。
不过内部的逻辑,SQL语句,需要根据你的需求才知道要写什么。
select sum(salary)
from tb_employee
where dept_id = @dept_id
展开全部
楼下的太麻烦了吧。emp员工表,输入任何部门号,返回部门的总工资,把总工资和部门好,分别放进emp2表里。
编写存储过程查询某部门员工的工资总和
create or replace procedure my_text(v_deptno number)
is
cursor c is select* from emp;
v1 number:=0;
begin
for a in c loop
if(a.deptno=v_deptno) then
v1:=v1+a.sal;
end if;
end loop;
insert into emp2 values(v1,v_deptno);
end;
是不是很吊啊?楼主?
编写存储过程查询某部门员工的工资总和
create or replace procedure my_text(v_deptno number)
is
cursor c is select* from emp;
v1 number:=0;
begin
for a in c loop
if(a.deptno=v_deptno) then
v1:=v1+a.sal;
end if;
end loop;
insert into emp2 values(v1,v_deptno);
end;
是不是很吊啊?楼主?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是要干啥 你需求呢
追问
把员工表中的工资总和,用带参数的存储过程做
追答
create or replace procedure P_TEST(strParam1 in varchar2,
strCount out number,
strErrCode out varchar2) is
strDBCount NUMBER; --工资总和
begin
select sum(字段1) into strDBCount from 表 where 条件
commit;
strDBCount := strDBCount ;
--错误处理部分
EXCEPTION
WHEN OTHERS THEN
strErrCode := '201'; --数据库操作发生错误
ROLLBACK;
RETURN;
end P_TEST;
----只是一个框架 要改 得看项目实际需求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询