??560
2015-05-15 12:37
采纳率: 63.6%
浏览 2.4k
已采纳

在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了!

在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 吉普赛的歌 2015-05-15 13:47
    已采纳

    你的表结构设计就有问题, 考虑得太粗糙了。看着似乎是学生的作业。
    你按我下面的代码来, 应该就可以了。
    不过, 你还可以尽情发挥, 因为实际来说还有钟点房……

      IF OBJECT_ID('room') IS NOT NULL
     BEGIN
        DROP TABLE room
     END
     GO
     CREATE TABLE room(
        rid INT PRIMARY KEY --房间号
        ,rName NVARCHAR(10) --房间名称
        --,rstate INT       --房间状态, 没有意义, 去掉
     )
     GO
     IF OBJECT_ID('orde') IS NOT NULL
     BEGIN
        DROP TABLE orde
     END
     GO
     CREATE TABLE orde(
        oid INT PRIMARY KEY --订单号
        ,rid INT            --房间号
        ,intime DATETIME    --入住时间 
        ,outtime DATETIME   --退房时间 => days(入住天数)要去掉, 不合适
     )
     GO
     SET NOCOUNT ON
     --1. 插入测试数据
    INSERT INTO room values(1,'牡丹房')
    INSERT INTO room values(2,'芍药房')
    --1号房间有客人预订 2015-05-18 10:00->05-19 11:59
    INSERT INTO orde  values(1,1,'2015-05-18 10:00','2015-05-19 11:59')
    
    --查询2015-05-19 0:00-12:00 (上半天)之间可订房间
    SELECT *
    ,CASE WHEN exists(
        SELECT 1 FROM ORDE b WHERE 
            a.rid=b.rid 
            AND
            ( 
                intime BETWEEN '2015-05-19' AND '2015-05-19 12:00' 
                or outtime BETWEEN '2015-05-19' AND '2015-05-19 12:00' 
            )   
    ) THEN '不可订' else '可订' end as rstate 
    FROM room a
    /*
    rid         rName      rstate
    ----------- ---------- ------
    1           牡丹房        不可订
    2           芍药房        可订 
    */
    --查询2015-05-19 12:00-23:59 (下半天)之间可订房间
    SELECT *
    ,CASE WHEN exists(
        SELECT 1 FROM ORDE b WHERE 
            a.rid=b.rid 
            AND
            ( 
                intime BETWEEN '2015-05-19 12:00' AND '2015-05-19 23:59' 
                or outtime BETWEEN '2015-05-19 12:00' AND '2015-05-19 23:59' 
            )   
    ) THEN '不可订' else '可订' end as rstate 
    FROM room a
    /*
    rid         rName      rstate
    ----------- ---------- ------
    1           牡丹房        可订
    2           芍药房        可订
    */
    
    
    打赏 评论
  • bdmh 2015-05-15 12:41

    这都是你从数据库中查出来的啊,查完了,你就在前端显示就是了,显示样式根据美工效果图去做,数据接收可以用现在的很多模型去做,比如strust2,spring等

    打赏 评论
  • threenewbee 2015-05-15 12:50

    这个要看你的数据表结构怎么定义的。

    打赏 评论
  • ??560 2015-05-15 12:58

    补充一下:查询数据库时要用到room和orde(订单)两个表中的信息,room:rid(房间号),rstate(房间状态);orde:oid(订单号),rid(房间号),intime(入住时间),days(入住天数)。我想实现的是按日期动态显示客房信息,并且能按日期来预订客房

    打赏 评论

相关推荐 更多相似问题