sqlserver存储过程的纠结问题
时间:2011-11-15
来源:互联网
create database YGGL
use YGGL
create table Employees (
EmployeeID char(6) primary key not null,
Name varchar(6) not null,
Education varchar(4) not null,
Birthday datetime not null,
Sex bit not null default 1,
WorkYear tinyint null,
Address varchar(40),
PhoneNumber char(12) null,
Pepartment char(3) not null
)
insert into Employees values('000001','王林','大专','1966-01-23',1,8,'中山路32-1-508','83355668',2);
insert into Employees values('010008','伍容华','本科','1976-03-28',1,3,'北京东路100-2','83321321',1);
insert into Employees values('020010','王向容','硕士','1982-12-09',1,2,'四牌楼10-0-108','83792361',1);
insert into Employees values('020018','李丽','大专','1960-07-30',0,6,'中山东路102-2','83413301',1);
insert into Employees values('102201','刘明','本科','1972-10-18',1,3,'虎距路100-2','83606608',5);
insert into Employees values('102208','朱骏','硕士','1965-09-28',1,2,'牌楼巷5-3-106','84708817',5);
insert into Employees values('108991','钟敏','硕士','1979-08-10',0,4,'中山路10-3-105','83346722',3);
insert into Employees values('111006','张石兵','本科','1974-10-01',1,1,'解放路34-1-203','84563418',5);
insert into Employees values('210678','林涛','大专','1977-04-02',1,2,'中山北路24-35','83467336',3);
insert into Employees values('302566','李玉珉','本科','1968-09-20',1,3,'热和路209-3','58765991',4);
insert into Employees values('308759','叶凡','本科','1978-11-18',1,2,'北京西路3-7-52','83308901',4);
insert into Employees values('504209','陈林琳','大专','1969-09-03',0,5,'汉中路120-4-12','84468158',4);
select * from Employees
create table Departments(
DepartmentID int not null primary key identity(1,1),
DepartmentName char(20) not null,
Note varchar(100) null
)
insert into Departments values(1,'财务部',null);
insert into Departments values(2,'人力资源部',null);
insert into Departments values (3,'经理办公室',null);
insert into Departments values(4,'研发部',null);
insert into Departments values(5,'市场部',null);
create table Salary(
EmployeeID char(6) primary key not null,
InCome float not null,
OutCome float not null,
)
insert into Salary values('000001',2100.8,123.09)
insert into Salary values('010008',1582.62,88.03);
insert into Salary values('102201',2569.88,185.65);
insert into Salary values('111006',1987.01,79.58);
insert into Salary values('504209',2066.15,108.0);
insert into Salary values('302566',2980.7,210.2);
insert into Salary values('108991',3259.98,281.52);
insert into Salary values('020010',2860.0,198.0);
insert into Salary values('020018',2347.68,180.0);
insert into Salary values('308759',2531.98,199.08);
insert into Salary values('210678',2240.0,121.0);
insert into Salary values('102208',1980.0,100.0);
--(a)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作
use YGGL
create table Employees (
EmployeeID char(6) primary key not null,
Name varchar(6) not null,
Education varchar(4) not null,
Birthday datetime not null,
Sex bit not null default 1,
WorkYear tinyint null,
Address varchar(40),
PhoneNumber char(12) null,
Pepartment char(3) not null
)
insert into Employees values('000001','王林','大专','1966-01-23',1,8,'中山路32-1-508','83355668',2);
insert into Employees values('010008','伍容华','本科','1976-03-28',1,3,'北京东路100-2','83321321',1);
insert into Employees values('020010','王向容','硕士','1982-12-09',1,2,'四牌楼10-0-108','83792361',1);
insert into Employees values('020018','李丽','大专','1960-07-30',0,6,'中山东路102-2','83413301',1);
insert into Employees values('102201','刘明','本科','1972-10-18',1,3,'虎距路100-2','83606608',5);
insert into Employees values('102208','朱骏','硕士','1965-09-28',1,2,'牌楼巷5-3-106','84708817',5);
insert into Employees values('108991','钟敏','硕士','1979-08-10',0,4,'中山路10-3-105','83346722',3);
insert into Employees values('111006','张石兵','本科','1974-10-01',1,1,'解放路34-1-203','84563418',5);
insert into Employees values('210678','林涛','大专','1977-04-02',1,2,'中山北路24-35','83467336',3);
insert into Employees values('302566','李玉珉','本科','1968-09-20',1,3,'热和路209-3','58765991',4);
insert into Employees values('308759','叶凡','本科','1978-11-18',1,2,'北京西路3-7-52','83308901',4);
insert into Employees values('504209','陈林琳','大专','1969-09-03',0,5,'汉中路120-4-12','84468158',4);
select * from Employees
create table Departments(
DepartmentID int not null primary key identity(1,1),
DepartmentName char(20) not null,
Note varchar(100) null
)
insert into Departments values(1,'财务部',null);
insert into Departments values(2,'人力资源部',null);
insert into Departments values (3,'经理办公室',null);
insert into Departments values(4,'研发部',null);
insert into Departments values(5,'市场部',null);
create table Salary(
EmployeeID char(6) primary key not null,
InCome float not null,
OutCome float not null,
)
insert into Salary values('000001',2100.8,123.09)
insert into Salary values('010008',1582.62,88.03);
insert into Salary values('102201',2569.88,185.65);
insert into Salary values('111006',1987.01,79.58);
insert into Salary values('504209',2066.15,108.0);
insert into Salary values('302566',2980.7,210.2);
insert into Salary values('108991',3259.98,281.52);
insert into Salary values('020010',2860.0,198.0);
insert into Salary values('020018',2347.68,180.0);
insert into Salary values('308759',2531.98,199.08);
insert into Salary values('210678',2240.0,121.0);
insert into Salary values('102208',1980.0,100.0);
--(a)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作
作者: annan211 发布时间: 2011-11-15
SQL code
Create proc Auto_Pepartment as update a set Pepartment=b.DepartmentID from Employees as a inner join Departments as b on b.DepartmentName='经理办公室' and a.Pepartment<>b.DepartmentID where a.WorkYear>6
作者: roy_88 发布时间: 2011-11-15
这个需求有点问题.
不是所有工作六年的人都会到经理办公室工作.
不是所有工作六年的人都会到经理办公室工作.
作者: qianjin036a 发布时间: 2011-11-15
楼主是否条件没有贴完整?
只是更新>6年员工的部门用1楼方法就行了。
只是更新>6年员工的部门用1楼方法就行了。
作者: roy_88 发布时间: 2011-11-15
SQL code
update Employees set Pepartment = n.DepartmentID from Employees m, Departments n where m.WorkYear >= 6 and n.DepartmentName = '经理办公室' select * from Employees /* EmployeeID Name Education Birthday Sex WorkYear Address PhoneNumber Pepartment ---------- ------ --------- ------------------------------------------------------ ---- -------- ---------------------------------------- ------------ ---------- 000001 王林 大专 1966-01-23 00:00:00.000 1 8 中山路32-1-508 83355668 3 010008 伍容华 本科 1976-03-28 00:00:00.000 1 3 北京东路100-2 83321321 1 020010 王向容 硕士 1982-12-09 00:00:00.000 1 2 四牌楼10-0-108 83792361 1 020018 李丽 大专 1960-07-30 00:00:00.000 0 6 中山东路102-2 83413301 3 102201 刘明 本科 1972-10-18 00:00:00.000 1 3 虎距路100-2 83606608 5 102208 朱骏 硕士 1965-09-28 00:00:00.000 1 2 牌楼巷5-3-106 84708817 5 108991 钟敏 硕士 1979-08-10 00:00:00.000 0 4 中山路10-3-105 83346722 3 111006 张石兵 本科 1974-10-01 00:00:00.000 1 1 解放路34-1-203 84563418 5 210678 林涛 大专 1977-04-02 00:00:00.000 1 2 中山北路24-35 83467336 3 302566 李玉珉 本科 1968-09-20 00:00:00.000 1 3 热和路209-3 58765991 4 308759 叶凡 本科 1978-11-18 00:00:00.000 1 2 北京西路3-7-52 83308901 4 504209 陈林琳 大专 1969-09-03 00:00:00.000 0 5 汉中路120-4-12 84468158 4 (所影响的行数为 12 行) */
作者: dawugui 发布时间: 2011-11-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28