房地产信息管理系统代码

USE MASTER
GO
CREATE DATABASE FDC
ON
(
NAME=FDC_DATA,
FILENAME='d:\fdcdatabase\fdcdata.mdf',
SIZE=30MB,
MAXSIZE=200MB,
FILEGROWTH=10MB
)
LOG ON
(
NAME=FDC_LOG_DATA,
FILENAME='d:\fdcdatabase\fdcdata.ldf',
SIZE=30MB,
MAXSIZE=200MB,
FILEGROWTH=10%
)

USE FDC
GO

CREATE TABLE LOGIN1--登录表
(
Username varchar(10) ,--用户名
Userpwd varchar(20) not null, --用户密码
Useridenty varchar(20) not null --用户身份
foreign key (Username) references Employee(Empnum)
ON DELETE CASCADE
ON UPDATE CASCADE
)
go

select *
from LOGIN1



insert into LOGIN1 values('201101','lili','职员')
insert into LOGIN1 values('201102','wangshan','经理')
insert into LOGIN1 values('201103','lilei','经理')
insert into LOGIN1 values('201104','guanxiaoiqng','职员')
insert into LOGIN1 values('201105','xiaoling','职员')


--drop PROCEDURE LOGIN_登录验证
CREATE PROCEDURE LOGIN_登录验证
@USERNAME VARCHAR(10),@USERPWD VARCHAR(20),@Useridenty varchar(20)=NULL
AS
BEGIN
IF (@Useridenty='管理员')
BEGIN
PRINT '登陆成功!'
return
END
IF EXISTS
(
SELECT *
FROM LOGIN1
WHERE USERNAME=@Username AND USERPWD=@Userpwd
)
BEGIN
PRINT '登陆成功!'
END
ELSE
PRINT'您登录的账户不存在,请查证后重新输入!'
END
GO
EXEC LOGIN_登录验证 '201106','xiaoling','管理员'
EXEC LOGIN_登录验证 '201101','xiaoling'
EXEC LOGIN_登录验证 '201105','xiaoling','职员'



CREATE TABLE Employee--员工信息表
(
Empnum varchar(10) not null,--员工编号
Empname varchar(20) unique,--员工姓名
Empsex VARCHAR (4) CHECK (Empsex IN ('男','女')),
Emppwd varchar(20) not null,--员工密码
Empaddress varchar(50),--员工地址
Emptel varchar(20),--员工联系方式
Empemaile varchar(20),--员工电邮地址
Empid varchar(20) unique,--员工身份证号
Empidenty varchar(20),--员工职位
Remarks varchar(50),
primary key(Empnum)
)
insert into Employee values('201101','李丽','女','lili','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524************','职员','')
insert into Employee values('201102','王珊','女','wangshan','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524************','经理','')
insert into Employee values('201103','李磊','男','lilei','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524************','经理','')
insert into Employee values('201104','关少刚','男','guanxiaoiqng','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524************','职员','')
insert into Employee values('201105','小玲','女','xiaoling','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524198902321504','职员','')

select *
from Employee

--存储过程
--查询员工信息
--按编号查询员工信息
CREATE PROCEDURE SELECT_Empnum @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入员工编号!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empnum FROM Employee WHERE Empnum =@编

号 )
BEGIN
PRINT '该姓名的员工不存在,请查证后再查找!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Employee
WHERE Empnum LIKE @编号
END
GO
EXEC SELECT_Empnum '201101'
EXEC SELECT_Empnum '201107'



--按姓名查询员工信息
CREATE PROCEDURE SELECT_Empname @姓名 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @姓名 IS NULL
BEGIN
PRINT '请输入员工姓名!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empname FROM Employee WHERE Empname =@姓名 )
BEGIN
PRINT '该姓名的员工不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Employee
WHERE Empname LIKE @姓名
END
GO
EXEC SELECT_Empname '王珊'
EXEC SELECT_Empname '王磊'

--按职位查询员工信息
CREATE PROCEDURE SELECT_Empidenty @职位 VARCHAR (20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @职位 IS NULL
BEGIN
PRINT '请输入要查询的员工职位!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empidenty FROM Employee WHERE Empidenty =@职位 )
BEGIN
PRINT '该职位不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Employee
WHERE Empidenty LIKE @职位
END
GO
EXEC SELECT_Empidenty '经理'
EXEC SELECT_Empidenty '职员'

--按身份证号查询员工信息
CREATE PROCEDURE SELECT_Empid @身份证号 VARCHAR (20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @身份证号 IS NULL
BEGIN
PRINT '请输入要查询的员工身份证号!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empid FROM Employee WHERE Empid =@身份证号 )
BEGIN
PRINT '该身份证号的员工不存在,请查证后再重新查询!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Employee
WHERE Empid LIKE @身份证号
END
GO
EXEC SELECT_Empid '130524************'
EXEC SELECT_Empid '130524************'

--按员工编号查询售房信息
CREATE PROCEDURE SELECT_Depnum5 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入员工编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 员工编号 FROM Depsale WHERE 员工编号=@编号 )
BEGIN
PRINT '该员工编号的售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Depsale
WHERE 员工编号 LIKE @编号
END
GO
EXEC SELECT_Depnum5 '201105'
DROP PROCEDURE SELECT_Depnum5

--统计员工工作量
SELECT 员工编号, COUNT( 员工编号) AS 工作量
FROM Depsale
GROUP BY 员工编号


--删除员工信息
--按照编号删除员工信息
CREATE PROCEDURE DELETE_Empnum @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入员工编号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empnum FROM Empl

oyee WHERE Empnum =@编号 )
BEGIN
PRINT '该编号的员工不存在,请查证后在输入!'
RETURN @ERRORVALURE
END
ELSE
DELETE FROM LOGIN1 WHERE Username =@编号
DELETE FROM Employee WHERE Empnum =@编号
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Empnum '201102'
EXEC DELETE_Empnum '201106'

--按姓名删除员工信息
CREATE PROCEDURE DELETE_Empname @姓名 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @姓名 IS NULL
BEGIN
PRINT '请输入员工姓名后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empname FROM Employee WHERE Empname =@姓名 )
BEGIN
PRINT '该编号的员工不存在,请查证后再删除!'
RETURN @ERRORVALURE
END
ELSE
declare @编号 varchar(10)
set @编号=(select Empnum from Employee WHERE Empname =@姓名 )
DELETE FROM LOGIN1 WHERE Username =@编号
DELETE FROM Employee WHERE Empname =@姓名
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Empname '李丽'
EXEC DELETE_Empname '李山'


--按身份证号删除员工信息
CREATE PROCEDURE DELETE_Empid @身份证号 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @身份证号 IS NULL
BEGIN
PRINT '请输入员工身份证号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT Empid FROM Employee WHERE Empid =@身份证号 )
BEGIN
PRINT '该身份证号号的员工不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
declare @编号 varchar(10)
set @编号=(select Empnum from Employee WHERE Empid =@身份证号 )
DELETE FROM LOGIN1 WHERE Username =@编号
DELETE FROM Employee WHERE Empid =@身份证号
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Empid '130524************'
EXEC DELETE_Empid '130524198902321504'

--更新信息编号
--按编号更新员工信息
CREATE PROCEDURE UPDATE_Empnum @编号1 VARCHAR (10),@编号 VARCHAR (10),@姓名 VARCHAR (20),
@性别 VARCHAR (4),@员工密码 VARCHAR (20),@住所 VARCHAR (50),@电话号码 varchar(20),
@邮箱 VARCHAR (20),@身份证号 VARCHAR(10),@职位 VARCHAR(10),@备注 varchar(50)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT Empnum FROM Employee WHERE Empnum =@编号1 )
BEGIN
PRINT '该编号的员工不存在,请重新更新!'
RETURN @ERRORVALURE
END
IF EXISTS
(SELECT *
FROM Employee
WHERE Empnum!=@编号1 AND Empname =@姓名 OR Empidenty =@身份证号 )
BEGIN
PRINT '姓名或身份证号取唯一值,请重新添加!'
RETURN @ERRORVALURE
END
UPDATE LOGIN1
SET USERNAME=@编号,USERPWD=@员工密码
WHERE USERNAME=@编号1
UPDATE Employee
SET Empnum=@编号,Empname =@姓名,Empsex =@性别, Emppwd=@员工密码 ,Empaddress =@住所 ,
Emptel =@电话号码 ,Empid =@身份证号 , Empemaile=@邮箱 ,Empidenty =@职位,Remarks=@备注
WHERE Empnum=@编号1
UPDATE Employee
SET Empnum=@编号 ,Empname =@姓名,Empsex =

@性别, Emppwd=@员工密码 ,Empaddress =@住所 ,
Emptel =@电话号码 ,Empid =@身份证号 , Empemaile=@邮箱 ,Empidenty =@职位,Remarks=@备注
WHERE Empnum=@编号1
PRINT '更新信息成功!'
END
GO
EXEC UPDATE_Empnum '201103','201103','Allar','女','xaoling','北京','132********','https://www.360docs.net/doc/ec10342821.html,','130524192902321504','职员',''



--按编号更新员工备注信息
CREATE PROCEDURE UPDATE_Empnum1 @编号1 VARCHAR (10),@备注 varchar(50)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT Remarks=@备注 FROM Employee WHERE Empnum =@编号1 )
BEGIN
PRINT '该编号的员工不存在,请重新输入!'
RETURN @ERRORVALURE
END
UPDATE Employee
SET Remarks=@备注
WHERE Empnum=@编号1
PRINT '更新信息成功!'
END
go
EXEC UPDATE_Empnum1 '201105','请假'


--添加信息
CREATE PROCEDURE INSERT_Emp @编号 VARCHAR(10),@姓名 VARCHAR(20),
@性别 VARCHAR(4),@员工密码 VARCHAR(20),@住所 VARCHAR(50),@电话号码 varchar(20),
@邮箱 VARCHAR(20),@身份证号 VARCHAR(10),@职位 VARCHAR(10),@备注 varchar(50)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF( @姓名 IS NULL OR @身份证号 IS NULL )
BEGIN
PRINT '姓名,身份证号不能为空!'
RETURN @ERRORVALURE
END
IF EXISTS
(
SELECT *
FROM Employee
WHERE Empname =@姓名 OR Empnum =@编号 OR Empid =@身份证号
)
BEGIN
PRINT '该员工姓名或者身份证号已存在!请重新添加!'
RETURN @ERRORVALURE
END
ELSE
INSERT INTO LOGIN1 VALUES(@编号,@员工密码,@职位)
INSERT INTO Employee VALUES(@编号,@姓名,@性别,@员工密码,@住所 ,@电话号码 ,@邮箱 ,@身份证号,@职位,@备注)
PRINT '添加成功!'
END
GO
EXEC INSERT_Emp '201108','李建一','男','lijianyi','北京','152********','https://www.360docs.net/doc/ec10342821.html,','130524************','职员',''


CREATE TABLE Client--客户信息表
(
客户编号 varchar(10) primary key,
客户姓名 VARCHAR(20) NOT NULL,
联系电话 varchar(16),
电邮地址 varchar(20),
身份证号 varchar(26) unique,
登记日期 datetime default getdate(),
备注 varchar(50)
)

select *
from Client

INSERT INTO Client( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 ) VALUES('20110101','王刚','153********','https://www.360docs.net/doc/ec10342821.html,','13054226678913',' ')
INSERT INTO Client( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 ) VALUES('20110102','Para','153********','https://www.360docs.net/doc/ec10342821.html,','13054236675913',' ')
INSERT INTO Client ( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 )VALUES('20110103','张玲','153********','https://www.360docs.net/doc/ec10342821.html,','13054436678913',' ')
INSERT INTO Client( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 ) VALUES('20110104','李静','153********','https://www.360docs.net/doc/ec10342821.html,','13054236678913',' ')
INSERT INTO Client ( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 )VALUES(

'20110105','李善','153********','https://www.360docs.net/doc/ec10342821.html,','13054233478913',' ')
--按编号查询客户信息
CREATE PROCEDURE SELECT_Clinum @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入客户编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户编号 FROM Client WHERE 客户编号=@编号 )
BEGIN
PRINT '该编号的客户不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Client
WHERE 客户编号 LIKE @编号
END
GO
EXEC SELECT_Clinum '20110102'
EXEC SELECT_Clinum '20110106'

--按姓名查询客户信息
CREATE PROCEDURE SELECT_Cliname @姓名 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @姓名 IS NULL
BEGIN
PRINT '请输入姓名后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户姓名 FROM Client WHERE 客户姓名=@姓名 )
BEGIN
PRINT '该姓名的客户不存在,请查证后再查找!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Client
WHERE 客户姓名 LIKE @姓名
END
GO
EXEC SELECT_Cliname 'Para'

--按身份证号查询客户信息
CREATE PROCEDURE SELECT_Cliid @身份证号 VARCHAR (20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @身份证号 IS NULL
BEGIN
PRINT '请输入客户身份证号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 身份证号 FROM Client WHERE 身份证号=@身份证号 )
BEGIN
PRINT '该身份证号的客户不存在,请重新查询!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM Client
WHERE 身份证号 LIKE @身份证号
END
GO
EXEC SELECT_cliid '13054233478913'


--删除客户信息

CREATE PROCEDURE DELETE_Clinum @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入客户编号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户编号 FROM Client WHERE 客户编号=@编号 )
BEGIN
PRINT '该编号的客户不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
DELETE FROM Client WHERE 客户编号 =@编号
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Clinum '20110102'

--按姓名删除客户信息
CREATE PROCEDURE DELETE_Cliname @姓名 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @姓名 IS NULL
BEGIN
PRINT '请输入客户姓名后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户姓名 FROM Client WHERE 客户姓名 =@姓名 )
BEGIN
PRINT '该编号的客户不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
DELETE FROM Client WHERE 客户姓名 =@姓名
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Cliname '王刚'


--按身份证号删除客户信息
CREATE PROCEDURE DELETE_Cliid @身份证号 VARCHAR(20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE

=0
BEGIN
IF @身份证号 IS NULL
BEGIN
PRINT '输入客户身份证号后才可查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 身份证号 FROM Client WHERE 身份证号 =@身份证号 )
BEGIN
PRINT '该身份证号号的客户不存在!'
RETURN @ERRORVALURE
END
ELSE
DELETE FROM Client WHERE 身份证号 =@身份证号
PRINT '信息删除成功!'
END
GO
EXEC DELETE_Cliid '130524************'
EXEC DELETE_Cliid '13054436678913'


--更新信息编号
--按编号更新客户信息
CREATE PROCEDURE UPDATE_Clinum @编号1 varchar(10),@编号 varchar(10),@姓名 VARCHAR(20),@电话 varchar(16),
@电邮地址 varchar(20),@身份证号 varchar(26),@备注 varchar(20)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT 客户编号 FROM Client WHERE 客户编号=@编号1 )
BEGIN
PRINT '该编号的客户不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
IF EXISTS
(
SELECT *
FROM Client
WHERE 客户编号=@编号 AND 身份证号=@身份证号
)
BEGIN
PRINT '身份证号取值唯一,请重新添加!'
RETURN @ERRORVALURE
END
UPDATE Client
SET 客户编号=@编号, 客户姓名=@姓名 ,联系电话=@电话 ,电邮地址=@电邮地址,身份证号=@身份证号,备注=@备注
WHERE 客户编号=@编号1
PRINT '更新信息成功!'
END
GO
EXEC UPDATE_Clinum '20110104','20110101','王刚','153********','https://www.360docs.net/doc/ec10342821.html,','13054226678913',' '

--按编号更新客户备注信息
CREATE PROCEDURE UPDATE_Clinum1 @编号1 varchar(10),@备注 varchar(50)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT 客户编号 FROM Client WHERE 客户编号=@编号1 )
BEGIN
PRINT '该编号的客户不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
UPDATE Client
SET 备注=@备注
WHERE 客户编号=@编号1
PRINT '更新信息成功!'
END
GO
EXEC UPDATE_Clinum1 '20110101',' 11'



--按身份证号更新客户信息
CREATE PROCEDURE UPDATE_Cliid @身份证号1 varchar(26),@姓名1 varchar(10),@编号 varchar(10),@姓名 VARCHAR(20),
@电话 varchar(16),@电邮地址 varchar(20),@身份证号 varchar(26),@备注 varchar(20)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT 身份证号 FROM Client WHERE 身份证号=@身份证号1)
BEGIN
PRINT '该身份证号的客户不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
IF EXISTS
(
SELECT *
FROM Client
WHERE 身份证号=@身份证号 AND 客户编号=@编号
)
BEGIN
PRINT '身份证号不可以重复,请重新添加!'
RETURN @ERRORVALURE
END
UPDATE Client
SET 客户编号=@编号, 客户姓名=@姓名 ,联系电话=@电话 ,电邮地址=@电邮地址,身份证号=@身份证号,备注=@备注
WHERE 身份证号=@身份证号1
PRINT '更新信息成功!'
END
GO
EXEC UPDATE_Clinum '13054226678913','20110101','

王刚','153********','https://www.360docs.net/doc/ec10342821.html,','13054226578913',' '


--添加信息
CREATE PROCEDURE INSERT_Client @编号 varchar(10),@姓名 VARCHAR(20),@电话 varchar(16),@电邮地址 varchar(20),
@身份证号 varchar(26),@备注 varchar(20)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF( @姓名 IS NULL OR @身份证号 IS NULL)
BEGIN
PRINT '姓名、身份证号不能为空!'
RETURN @ERRORVALURE
END
IF EXISTS
(
SELECT *
FROM Client
WHERE 身份证号=@身份证号 OR 客户编号 =@编号
)
BEGIN
PRINT '该客户身份证号或者编号已存在,请重新添加!'
RETURN @ERRORVALURE
END
ELSE
INSERT INTO Client ( 客户编号,客户姓名,联系电话 ,电邮地址,身份证号 ,备注 )VALUES(@编号 ,@姓名,@电话,@电邮地址,@身份证号,@备注)
PRINT '添加成功!'
END
GO
EXEC INSERT_Client '20110107','王晓茹','153********','https://www.360docs.net/doc/ec10342821.html,','13054221678912',' '
drop PROCEDURE INSERT_Client

CREATE TABLE Department--房源信息表
(
房源编号 varchar(10)primary key,
房屋性质 varchar(20),
所属区域 varchar(20),
街区 varchar(20),
房型 varchar(10),
楼层 varchar(5),
总层数 varchar(5),
朝阳 varchar(6),
面积 int,
装修情况 varchar(20),
房屋设施 varchar(30),
价格 int,
建成日期 datetime,
登记日期 datetime default getdate(),
备注 varchar(50),
状态 smallint check(状态=1 or 状态=2 or 状态=3)--未售出,已预订,已售出
)
drop TABLE Department

CREATE VIEW 楼盘宣传信息
as
SELECT 房源编号,房屋性质,所属区域 ,街区 ,房型 ,楼层,总层数,朝阳,面积, 装修情况,房屋设施,价格,建成日期,备注
FROM Department
where 状态=1
WITH CHECK OPTION

CREATE VIEW 楼盘最新宣传信息
as
SELECT 房源编号,房屋性质,所属区域 ,街区 ,房型 ,楼层,总层数,朝阳,面积, 装修情况,房屋设施,价格,建成日期,备注
FROM Department
where 状态=1
WITH CHECK OPTION

CREATE VIEW 楼盘预订信息
AS
SELECT 房源编号,房屋性质,所属区域 ,街区 ,房型 ,楼层,总层数,朝阳,面积, 装修情况,房屋设施,价格,建成日期,备注
FROM Department
where 状态=2
WITH CHECK OPTION

CREATE VIEW 楼盘售出信息
AS
SELECT 房源编号,房屋性质,所属区域 ,街区 ,房型 ,楼层,总层数,朝阳,面积, 装修情况,房屋设施,价格,建成日期,备注
FROM Department
where 状态=3
WITH CHECK OPTION


select *
from 楼盘最新宣传信息


select *
from 楼盘宣传信息

select *
from 楼盘预订信息

select *
from 楼盘售出信息


select count(*) AS 待售出房屋总数
from 楼盘宣传信息

select count(*) AS 已预订房屋总数
from 楼盘预订信息

select count(*) AS 已售出房屋总数
from 楼盘售出信息


INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装

修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0021','住宅','廊坊广阳区','和平路','三室一厅','二楼','六层','朝阳',120,'无','无',9000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0022','住宅','廊坊广阳区','和平路','两室一厅','二楼','六层','不朝阳',120,'无','无',9000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0031','住宅','廊坊广阳区','和平路','三室一厅','三楼','六层','朝阳',120,'无','无',8000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0032','住宅','廊坊广阳区','和平路','一室一厅','三楼','六层','不朝阳',120,'无','无',8000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0041','住宅','廊坊广阳区','和平路','三室一厅','四楼','六层','朝阳',120,'无','无',7000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0042','住宅','廊坊广阳区','和平路','一室一厅','四楼','六层','不朝阳',120,'无','无',7000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0051','住宅','廊坊广阳区','和平路','三室一厅','五楼','六层','朝阳',120,'无','无',6000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0052','住宅','廊坊广阳区','和平路','两室一厅','五楼','六层','不朝阳',120,'无','无',6000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0061','住宅','廊坊广阳区','和平路','三室一厅','六楼','六层','朝阳',120,'无','无',5000,'2011-02-1','',1)
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES('0062','住宅','廊坊广阳区','和平路','一室一厅','六楼','六层','不朝阳',120,'无','无',5000,'2011-02-1','',1

)

CREATE TABLE Depdaily--历史房源信息表
(
房源编号 varchar(10)primary key,
房屋性质 varchar(20),
所属区域 varchar(20),
街区 varchar(20),
房型 varchar(10),
楼层 varchar(5),
总层数 varchar(5),
朝阳 varchar(6),
面积 varchar(20),
装修情况 varchar(20),
房屋设施 varchar(30),
价格 varchar(20),
建成日期 datetime,
登记日期 datetime,
备注 varchar(50)
)

--按编号查询房源信息
CREATE PROCEDURE SELECT_Depnum @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入房源编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 房源编号 FROM Department WHERE 房源编号=@编号 )
BEGIN
PRINT '该编号的房屋不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 楼盘宣传信息
WHERE 房源编号 LIKE @编号
END
GO
EXEC SELECT_Depnum '0062'
EXEC SELECT_Depnum '0011'

--按楼层查询房源信息
CREATE PROCEDURE SELECT_Depflour @flour VARCHAR (5)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @flour IS NULL
BEGIN
PRINT '请输入房源楼层后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 楼层 FROM Department WHERE 楼层=@flour )
BEGIN
PRINT '该楼层的房屋不存在!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 楼盘宣传信息
WHERE 楼层 LIKE @flour
END
GO
EXEC SELECT_Depflour '六楼'
EXEC SELECT_Depflour '七楼'

--按所属区域查询房源信息
CREATE PROCEDURE SELECT_Deprear @rear VARCHAR (20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @rear IS NULL
BEGIN
PRINT '请输入所属区域后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 所属区域 FROM Department WHERE 所属区域 like @rear )
BEGIN
PRINT '所属区域的房屋不存在!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 楼盘宣传信息
WHERE 所属区域 = @rear
END
GO
EXEC SELECT_Deprear '廊坊广阳区'
EXEC SELECT_Deprear '石家庄裕华区'

--按所属类型查询房源信息
CREATE PROCEDURE SELECT_DepType @Type VARCHAR (20)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @Type IS NULL
BEGIN
PRINT '请输入所属性质后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 房屋性质 FROM Department WHERE 房屋性质=@Type )
BEGIN
PRINT '所属性质的房屋不存在!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 楼盘宣传信息
WHERE 房屋性质=@Type
END
GO
EXEC SELECT_DepType '住宅'
EXEC SELECT_DepType '办公'

--删除房源信息 drop PROCEDURE DELETE_Depnum

CREATE PROCEDURE DELETE_Depnum @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入房源编号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS

(SELECT 房源编号 FROM Department WHERE 房源编号=@编号 )
BEGIN
PRINT '该编号的房屋不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
DECLARE @num varchar(5)
DECLARE @Type varchar(20)
DECLARE @Rear varchar(20)
DECLARE @Block varchar(20)
DECLARE @Deptype varchar(10)
DECLARE @Flour varchar(5)
DECLARE @Aflour varchar(5)
DECLARE @Southas varchar(5)
DECLARE @DepSqu int
DECLARE @Fixture varchar(20)
DECLARE @Facility varchar(30)
DECLARE @Prize int
DECLARE @Finishdate datetime
DECLARE @Demark varchar(20)--备注
SET @num=(SELECT 房源编号 from Department WHERE 房源编号 =@编号)
SET @Type=(SELECT 房屋性质 FROM Department WHERE 房源编号 =@编号)
SET @Rear=(SELECT 所属区域 FROM Department WHERE 房源编号 =@编号)
SET @Block=(SELECT 街区 FROM Department WHERE 房源编号 =@编号)
SET @Deptype=(SELECT 房型 FROM Department WHERE 房源编号 =@编号)
SET @Flour=(SELECT 楼层 FROM Department WHERE 房源编号 =@编号)
SET @Aflour=(SELECT 总层数 FROM Department WHERE 房源编号 =@编号)
SET @Southas=(SELECT 朝阳 FROM Department WHERE 房源编号 =@编号)
SET @DepSqu=(SELECT 面积 FROM Department WHERE 房源编号 =@编号)
SET @Fixture=(SELECT 装修情况 FROM Department WHERE 房源编号 =@编号)
SET @Facility=(SELECT 房屋设施 FROM Department WHERE 房源编号 =@编号)
SET @Prize=(SELECT 价格 FROM Department WHERE 房源编号 =@编号)
SET @Finishdate=(SELECT 建成日期 FROM Department WHERE 房源编号 =@编号)
SET @Demark=(SELECT 备注 FROM Department WHERE 房源编号 =@编号)
INSERT INTO Depdaily VALUES(@num,@type,@Rear,@Block, @Deptype,@Flour,@Aflour,@Southas,@DepSqu,@Fixture,@Facility,@Prize,@Finishdate,'',@Demark)
DELETE FROM Department WHERE 房源编号 =@编号
PRINT '信息删除成功!'
END
GO

EXEC DELETE_Depnum '0021'
EXEC DELETE_Depnum '0023'

--更新信息编号
--按编号更新房源信息
CREATE PROCEDURE UPDATE_Depnum @编号1 varchar(10),@编号 varchar(10),@房屋性质 varchar(20),@所属区域 varchar(20),
@街区 varchar(20),@房型 varchar(10),@楼层 varchar(5),@总层数 varchar(5),@朝阳 varchar(6),@面积 int,
@装修情况 varchar(20), @房屋设施 varchar(30),@价格 int,@建成日期 datetime,@备注 varchar(50),@状态 smallint
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT 房源编号 FROM Department WHERE 房源编号=@编号1 )
BEGIN
PRINT '该编号的客户不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
UPDATE Department
SET 房源编号=@编号,房屋性质=@房屋性质,所属区域=@所属区域,
街区=@街区,房型=@房型,楼层=@楼层,总层数=@总层数,朝阳=@朝阳,面积=@面积,
装修情况=@装修情况, 房屋设施=@房屋设施,价格=@价格,建成日期=@建成日期,备注=@备注,状态=@状态
WHERE 房源编号=@编号1
PRINT '更新信息成功!'

END
GO
EXEC UPDATE_Depnum '0062','0062','住宅','廊坊广阳区','新开路','一室一厅','六楼','六层','不朝阳',120,'无','无',
9000,'2011-02-1','',2
EXEC UPDATE_Depnum '0062','0062','住宅','廊坊广阳区','新开路','一室一厅','六楼','六层','不朝阳',100,'无','无',
9000,'2011-02-1','',2


--添加信息
CREATE PROCEDURE INSERT_Depart @编号 varchar(10),@房屋性质 varchar(20),@所属区域 varchar(20),
@街区 varchar(20),@房型 varchar(10),@楼层 varchar(5),@总层数 varchar(5),@朝阳 varchar(6),@面积 int,
@装修情况 varchar(20), @房屋设施 varchar(30),@价格 int,@建成日期 datetime,@备注 varchar(50)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF( @编号 IS NULL )
BEGIN
PRINT '房源编号不能为空!'
RETURN @ERRORVALURE
END
ELSE
INSERT INTO Department (房源编号,房屋性质,所属区域,街区,房型,楼层,总层数,朝阳,面积,装修情况, 房屋设施 ,价格,建成日期, 备注,状态 )
VALUES(@编号,@房屋性质,@所属区域,@街区,@房型,@楼层,@总层数,@朝阳,@面积,@装修情况 , @房屋设施,@价格 ,@建成日期,@备注,1)
PRINT '添加成功!'
END
GO
EXEC INSERT_Depart '0012','住宅','廊坊广阳区','和平路','一室一厅','一楼','六层','不朝阳',120,'无','无',7000,'2011-02-1',''






CREATE TABLE Depsale--出售房屋信息表
(
售房编号 varchar(10)primary key,--identy(1,1)
房源编号 varchar(10)foreign key references Department(房源编号) ,
客户编号 varchar(10)foreign key references Client(客户编号) ,
员工编号 varchar(10)foreign key references Employee(Empnum),
预订登记日期 datetime default getdate(),
交房日期 datetime,
付款方式 varchar(20),-- (a:一次性付款b:按月分期付款c:按年分期付款)
备注交款 varchar(20), --已交,10个月每月1/2,、1/20已交 次差 次,两年每年1/2已交 年
交款完成日期 datetime
)
insert into Depsale (售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
values('01','0021','20110101','201105','2011-06-24','a:一次性付款','是','2011-06-01')

insert into Depsale (售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
values('02','0022','20110102','201101','2011-06-24','b:按月分期付款','交 次差 次','')

insert into Depsale(售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
values('03','0031','20110103','201102','2011-09-24','b:按月分期付款','交 次差 次','')

insert into Depsale(售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
values('04','0032','20110104','201104','2001-06-24','c:按分期付款','是','2011-06-01')

insert into Depsale(售房编号 ,房源编号 ,客

户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
values('05','0041','20110105','201103','2001-06-24','c:按年分期付款','是','2011-06-01')

CREATE TABLE Depsaledaily--出售房屋历史信息
(
售房编号 varchar(10)primary key,--identy(1,1)
房源编号 varchar(10)foreign key references Department(房源编号) ,
客户编号 varchar(10)foreign key references Client(客户编号) ,
员工编号 varchar(10)foreign key references Employee(Empnum),
预订登记日期 datetime ,
交房日期 datetime,
付款方式 varchar(20),-- (a:一次性付款b:按月分期付款c:按年分期付款)
备注交款 varchar(20), --已交,10个月每月1/2,、1/20已交 次差 次,两年每年1/2已交 年
交款完成日期 datetime
)
CREATE VIEW 详单
AS
SELECT 售房编号,Department.房源编号 ,房屋性质 ,所属区域,街区,房型 ,楼层 ,总层数,朝阳,面积,装修情况,房屋设施,价格,面积*价格 AS 总金额,建成日期,
Department.登记日期, 员工编号,预订登记日期,交房日期 ,付款方式 ,备注交款, 交款完成日期 ,Client.客户编号,客户姓名
FROM Depsale,Department,Client
WHERE Client.客户编号=Depsale.客户编号 AND Department.房源编号=Depsale.房源编号

select *
from 详单

--添加购买信息
drop PROCEDURE INSERT_Depsale2
CREATE PROCEDURE INSERT_Depsale2 @售房编号 varchar(10) ,@房源编号 varchar(10) , @客户编号 varchar(10 ),@员工编号 varchar(10)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF( @售房编号 IS NULL OR @房源编号 IS NULL OR @客户编号 IS NULL OR @员工编号 IS NULL )
BEGIN
PRINT '售房编号、房源编号、客户编号、员工编号不能为空!'
RETURN @ERRORVALURE
END
if NOT EXISTS
(select *
from Department
where 房源编号=@房源编号 and 状态=1 )
begin
PRINT '该房屋已经被预订或售出!'
RETURN @ERRORVALURE
END
UPDATE Department
SET 状态=3 WHERE 房源编号 =@房源编号
INSERT INTO Depsale(售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 , 交款完成日期 )
VALUES( @售房编号,@房源编号, @客户编号,@员工编号,'2011-6-24' ,'a:一次性付款','已交', '2011-6-24')
PRINT '购买成功!'
END
GO
EXEC INSERT_Depsale2 '01','0062','20110104','201105'
EXEC INSERT_Depsale2 '02','0061','20110103','201101'
EXEC INSERT_Depsale2 '03','0021','20110101','201105'

--按售房编号查询售房信息
CREATE PROCEDURE SELECT_Depnum1 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入售房编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale WHERE 售房编号=@编号 )
BEGIN
PRINT '该编号的售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM

详单
WHERE 售房编号 LIKE @编号
END
GO
EXEC SELECT_Depnum1 '03'

--按房源编号查询售房信息
CREATE PROCEDURE SELECT_Depnum2 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入房源编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 房源编号 FROM Depsale WHERE 房源编号=@编号 )
BEGIN
PRINT '该编号的房源售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 详单
WHERE 房源编号 LIKE @编号
END
GO
EXEC SELECT_Depnum2 '0021'

--按客户编号查询售房信息
CREATE PROCEDURE SELECT_Depnum3 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入客户编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户编号 FROM Depsale WHERE 客户编号=@编号 )
BEGIN
PRINT '该客户编号的房源售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 详单
WHERE 客户编号 LIKE @编号
END
GO
EXEC SELECT_Depnum3 '20110101'





--按员工编号查询售房信息
CREATE PROCEDURE SELECT_Depnum4 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入员工编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 员工编号 FROM Depsale WHERE 员工编号=@编号 )
BEGIN
PRINT '该员工编号的售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 详单
WHERE 员工编号 LIKE @编号
END
GO
EXEC SELECT_Depnum4 '201105'




--删除售房信息
CREATE PROCEDURE DELETE_Depsale1 @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入售房编号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale WHERE 售房编号=@编号 )
BEGIN
PRINT '该编号的售房编号不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
DECLARE @售房编号 varchar(10)
DECLARE @房源编号 varchar(10)
DECLARE @客户编号 varchar(10)
DECLARE @员工编号 varchar(10)
DECLARE @预订登记日期 datetime
DECLARE @交房日期 datetime
DECLARE @付款方式 varchar(20)
DECLARE @备注交款 varchar(20)
DECLARE @交款完成日期 datetime
set @售房编号=(select 售房编号 FROM Depsale WHERE 售房编号=@编号 )
set @房源编号=(select 房源编号 FROM Depsale WHERE 售房编号=@编号 )
set @客户编号=(select 客户编号 FROM Depsale WHERE 售房编号=@编号 )
set @员工编号=(select 员工编号 FROM Depsale WHERE 售房编号=@编号 )
set @预订登记日期=(select 预订登记日期 FROM Depsale WHERE 售房编号=@编号 )
set @交房日期=(select 交房日期

FROM Depsale WHERE 售房编号=@编号 )
set @付款方式=(select 付款方式 FROM Depsale WHERE 售房编号=@编号 )
set @备注交款=(select 备注交款 FROM Depsale WHERE 售房编号=@编号 )
set @交款完成日期=(select 交款完成日期 FROM Depsale WHERE 售房编号=@编号 )
INSERT INTO Depsaledaily VALUES (@售房编号,@房源编号,@客户编号 ,@员工编号, @预订登记日期 , @交房日期,@付款方式, @备注交款 , @交款完成日期 )
DELETE FROM Depsale WHERE 售房编号 =@编号
PRINT '删除成功!'
END
GO

EXEC DELETE_Depsale1 '03'

select *
from Depsale

select *
from Depsaledaily




CREATE TABLE Depsale1--预定房屋信息表
(
售房编号 varchar(10)primary key,
房源编号 varchar(10)foreign key references Department(房源编号) ,
客户编号 varchar(10)foreign key references Client(客户编号) ,
员工编号 varchar(10)foreign key references Employee(Empnum),
预订登记日期 datetime default getdate(),
交房日期 datetime,
付款方式 varchar(20),-- (a:一次性付款b:按月分期付款c:按年分期付款)
备注交款 varchar(20), --已交,10个月每月1/2,、1/20已交 次差 次,两年每年1/2已交 年
首付 int,
每次缴款 int,
共需缴款次数 smallint,
已经缴款次数 smallint,
还差缴款次数 smallint,
交款完成日期 datetime
)
CREATE TABLE Depsaledaily1--预定房屋历史信息
(
售房编号 varchar(10)primary key,--identy(1,1)
房源编号 varchar(10)foreign key references Department(房源编号) ,
客户编号 varchar(10)foreign key references Client(客户编号) ,
员工编号 varchar(10)foreign key references Employee(Empnum),
预订登记日期 datetime ,
交房日期 datetime,
付款方式 varchar(20),-- (a:一次性付款b:按月分期付款c:按年分期付款)
备注交款 varchar(20),
首付 int,
每次缴款 int,
共需缴款次数 smallint,
已经缴款次数 smallint,
还差缴款次数 smallint,
交款完成日期 datetime
)
CREATE VIEW 预定详单
AS
SELECT 售房编号,Department.房源编号 ,房屋性质 ,所属区域,街区,房型 ,楼层 ,总层数,朝阳,面积,装修情况,房屋设施,价格,面积*价格 AS 总金额,建成日期, Department.登记日期,
员工编号,预订登记日期,交房日期 ,付款方式 ,首付,每次缴款,共需缴款次数,已经缴款次数,还差缴款次数,备注交款, 交款完成日期 ,Client.客户编号,客户姓名
FROM Depsale1,Department,Client
WHERE Client.客户编号=Depsale1.客户编号 AND Department.房源编号=Depsale1.房源编号

select *
from 预定详单

--添加预订信息
drop PROCEDURE INSERT_Depsale11
CREATE PROCEDURE INSERT_Depsale11 @售房编号 varchar(10) ,@房源编号 varchar(10) , @客户编号 varchar(10 ),@员工编号 varchar(10),
@交房日期 datetime,@付款方式编号 varchar(20),@是否交完款 varchar(20),@

共需缴款次数 smallint,@交款完成日期 datetime
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF( @售房编号 IS NULL OR @房源编号 IS NULL OR @客户编号 IS NULL OR @员工编号 IS NULL )
BEGIN
PRINT '售房编号、房源编号、客户编号、员工编号不能为空!'
RETURN @ERRORVALURE
END
if NOT EXISTS
(select *
from Department
where 房源编号=@房源编号 and 状态=1 )
begin
PRINT '该房屋已经被预订或售出!'
RETURN @ERRORVALURE
END
else
declare @价格 int
declare @面积 int
set @价格=(select 价格 from Department where 房源编号 =@房源编号)
set @面积=(select 面积 from Department where 房源编号 =@房源编号)
UPDATE Department
SET 状态=2 WHERE 房源编号 =@房源编号
INSERT INTO Depsale1(售房编号 ,房源编号 ,客户编号 ,员工编号 ,交房日期,付款方式,备注交款 ,首付,每次缴款,共需缴款次数,已经缴款次数,还差缴款次数, 交款完成日期 )
VALUES( @售房编号,@房源编号, @客户编号,@员工编号,@交房日期 ,@付款方式编号,@是否交完款,@价格*@面积/2,@价格*@面积*1.1/2/@共需缴款次数, @共需缴款次数,0,@共需缴款次数, @交款完成日期)
PRINT '预订成功!'
END
GO
EXEC INSERT_Depsale11 '06','0062','20110105','201105','2009-09-01','b:按月分期付款','',12,'2010-09-01'
EXEC INSERT_Depsale11 '07','0052','20110101','201104','2009-09-01','b:按年分期付款','',2,'2011-09-01'


--按售房编号查询售房信息
CREATE PROCEDURE SELECT_Depnum11 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入售房编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale1 WHERE 售房编号=@编号 )
BEGIN
PRINT '该编号的售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 预定详单
WHERE 售房编号 LIKE @编号
END
GO
EXEC SELECT_Depnum11 '06'

--按房源编号查询售房信息
--drop PROCEDURE SELECT_Depnum22
CREATE PROCEDURE SELECT_Depnum22 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入房源编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 房源编号 FROM Depsale1 WHERE 房源编号=@编号 )
BEGIN
PRINT '该编号的房源售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 预定详单
WHERE 房源编号 LIKE @编号
END
GO
EXEC SELECT_Depnum22 '0062'

--按客户编号查询预定信息
CREATE PROCEDURE SELECT_Depnum33 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入客户编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 客户编号 FROM Depsale1 WHERE 客户编号=

@编号 )
BEGIN
PRINT '该客户编号的房源售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 预定详单
WHERE 客户编号 LIKE @编号
END
GO
EXEC SELECT_Depnum33 '20110105'





--按员工编号查询预定信息
--drop PROCEDURE SELECT_Depnum44
CREATE PROCEDURE SELECT_Depnum44 @编号 VARCHAR (10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入员工编号后再查询!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 员工编号 FROM Depsale1 WHERE 员工编号=@编号 )
BEGIN
PRINT '该员工编号的售房信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
ELSE
SELECT *
FROM 预定详单
WHERE 员工编号 LIKE @编号
END
GO
EXEC SELECT_Depnum44 '201105'



--按编号交款 drop PROCEDURE UPDATE_Depsale22
CREATE PROCEDURE UPDATE_Depsale22 @编号1 varchar(10)
AS
BEGIN
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale1 WHERE 售房编号=@编号1 and 还差缴款次数>0)
BEGIN
PRINT '该编号的预定房屋信息不存在,请查证后再输入!'
RETURN @ERRORVALURE
END
declare @已经缴款次数 smallint
declare @还差缴款次数 smallint
declare @房源编号 varchar(10)
set @还差缴款次数=(select 还差缴款次数 from Depsale1 where 售房编号=@编号1)
set @已经缴款次数=(select 已经缴款次数 from Depsale1 where 售房编号=@编号1)
set @房源编号=(select 房源编号 from Depsale1 where 售房编号=@编号1)
UPDATE Depsale1
SET 还差缴款次数=@还差缴款次数-1,已经缴款次数=@已经缴款次数+1
WHERE 售房编号=@编号1
if EXISTS
(select * from Depsale1 where 售房编号=@编号1 and 共需缴款次数=已经缴款次数)
begin
PRINT '付款成功!已经付完所有房款!请办理相关业务!'
update Department
set 状态=3
where 房源编号=@房源编号
RETURN @ERRORVALURE
END
PRINT '付款成功!'
END
GO
EXEC UPDATE_Depsale22 '06'

-- 取消预订drop PROCEDURE DELETE_Depsale11
CREATE PROCEDURE DELETE_Depsale11 @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入售房编号后再取消预订!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale1 WHERE 售房编号=@编号 and 还差缴款次数>0 )
BEGIN
PRINT '该编号的售房编号不存在,请重新取消预订!'
RETURN @ERRORVALURE
END
ELSE
DECLARE @房源编号 varchar(10)
set @房源编号=(select 房源编号 FROM Depsale1 WHERE 售房编号=@编号 )
UPDATE Department
SET 状态=1 WHERE 房源编号 =@房源编号
DELETE FROM Depsale1 WHERE 售房编号 =@编号
PRINT '取消成功!请办理相关业务'
END
GO
EXEC DELETE_Depsale11 '06'


select *
from Depsale1

--删除预定信息drop PRO

CEDURE DELETE_Depsale12
CREATE PROCEDURE DELETE_Depsale12 @编号 VARCHAR(10)
AS
DECLARE @ERRORVALURE INT
SET @ERRORVALURE =0
BEGIN
IF @编号 IS NULL
BEGIN
PRINT '请输入售房编号后再删除!'
RETURN @ERRORVALURE
END
IF NOT EXISTS
(SELECT 售房编号 FROM Depsale1 WHERE 售房编号=@编号 )
BEGIN
PRINT '该编号的售房编号不存在,请重新删除!'
RETURN @ERRORVALURE
END
ELSE
DECLARE @售房编号 varchar(10)
DECLARE @房源编号 varchar(10)
DECLARE @客户编号 varchar(10)
DECLARE @员工编号 varchar(10)
DECLARE @预订登记日期 datetime
DECLARE @交房日期 datetime
DECLARE @付款方式 varchar(20)
DECLARE @备注交款 varchar(20)
DECLARE @首付 int
DECLARE @每次缴款 int
DECLARE @共需缴款次数 smallint
DECLARE @已经缴款次数 smallint
DECLARE @还差缴款次数 smallint
DECLARE @交款完成日期 datetime
set @售房编号=(select 售房编号 FROM Depsale1 WHERE 售房编号=@编号 )
set @房源编号=(select 房源编号 FROM Depsale1 WHERE 售房编号=@编号 )
set @客户编号=(select 客户编号 FROM Depsale1 WHERE 售房编号=@编号 )
set @员工编号=(select 员工编号 FROM Depsale1 WHERE 售房编号=@编号 )
set @预订登记日期=(select 预订登记日期 FROM Depsale1 WHERE 售房编号=@编号 )
set @交房日期=(select 交房日期 FROM Depsale1 WHERE 售房编号=@编号 )
set @付款方式=(select 付款方式 FROM Depsale1 WHERE 售房编号=@编号 )
set @备注交款=(select 备注交款 FROM Depsale1 WHERE 售房编号=@编号 )
set @每次缴款=(select 每次缴款 FROM Depsale1 WHERE 售房编号=@编号 )
set @共需缴款次数=(select 共需缴款次数 FROM Depsale1 WHERE 售房编号=@编号 )
set @已经缴款次数=(select 已经缴款次数 FROM Depsale1 WHERE 售房编号=@编号 )
set @还差缴款次数=(select 还差缴款次数 FROM Depsale1 WHERE 售房编号=@编号 )
set @交款完成日期=(select 交款完成日期 FROM Depsale1 WHERE 售房编号=@编号 )
INSERT INTO Depsaledaily1 VALUES (@售房编号,@房源编号,@客户编号 ,@员工编号, @预订登记日期 , @交房日期,
@付款方式, @备注交款 ,@首付,@每次缴款,@共需缴款次数,@已经缴款次数,@还差缴款次数 ,@交款完成日期 )
DELETE FROM Depsale1 WHERE 售房编号 =@编号
PRINT '删除成功!'
END
GO
EXEC DELETE_Depsale12 '06'


相关文档
最新文档