实现退房登记,并应修改客房的状态信息(占用用‘1’表示,空房用‘0’表示),退房时要求根据入住日期和当前日期自动计算入住天数和应交房费,并将收入自动插入住房收入登记表中(要求用触发器实现)我只是回查询出入住的天数select  datediff(dd,入住日期,退房日期) from tuifang
但是我不知道如何插入函数来计算入住的天数和价格的乘积。并自动插入另外一张表中。。求高手怎么实现。

解决方案 »

  1.   

    create table tuifang(
    名字 char(20),
    客房号 int not null primary key,
    入住日期 datetime,
    退房日期 datetime,
    状态 int not null check(状态=0)
    )
    create trigger trig3 on tuifang
    for insert,update,delete
    as
    select * from tuifang
    go
    insert tuifang values('李名','101','1985-8-8','1985-9-10','0')
    insert tuifang values('张三','102','1985-1-1','1986-1-1','0')
    这是退房的数据。。求教
      

  2.   

    create trigger trig3 on tuifang
    for insert,update,delete
    as
    insert ta(天数,房价)
    select (datediff(day,t.入住日期,t.退房日期)+1)*60.00--应该有一个房价表
    from tuifang t inner join inserted i on t.名字=i.名字 and t.客房号=i.客房号
    where 名字=ta.名字
    tuifang应有数据才对
      

  3.   

    啊。我还有一个入住的表没贴出来
    这个是:create table ruzhu(
    名字 char(20),
    客房号 int not null primary key,
    入住日期 datetime,
    状态 int not null check(状态=1)
    )
    create trigger trig2 on ruzhu
    for insert,update,delete
    as
    select * from ruzhu 
    go
    insert ruzhu values('李名','101','1985-8-8','1')
    insert ruzhu values('李大','102','1985-8-8','1')
    update ruzhu set 名字='张三' where 客房号=102
      

  4.   

    create table tuifang(
    名字 char(20),
    客房号 int not null primary key,
    入住日期 datetime,
    退房日期 datetime,
    状态 int not null check(状态=0)
    )
    create table ta(天数 int,房价 decimal(15,2))create trigger trig3 on tuifang
    for insert,update,delete
    as
    insert ta(天数,房价)
    select (datediff(day,i.入住日期,i.退房日期)+1),(datediff(day,i.入住日期,i.退房日期)+1)*60.00--应该有一个房价表
    from inserted i go
    insert tuifang values('李名','101','1985-8-8','1985-9-10','0')
    insert tuifang values('张三','102','1985-1-1','1986-1-1','0')
    select * from ta
    天数          房价                
    ----------- ----------------- 
    34          2040.00
    366         21960.00(所影响的行数为 2 行)按照楼主的数据一次插入入住与退房时间。好像不合常理
      

  5.   

    for insert,update,delete--楼主定义的这个触发器类型也有问题
    插入、更新、删除都触发触发器这样是不行了
    楼主把关连的几个表的结构贴出来