--borrows表中,求出每个读者借书 应该到期还书时间!---根据会员类型计算还书时间 
--假设bcout 为借书日期
select a.*,还书日期=dateadd(day,case b.rtype when 0 then 20 when 1 then 30 when 2 then 50 end,b.bcount)
from readers a 
  join borrows b on a.rno=b.rno--borrows表中,求出每个读者还书是否过期,过期多少天!(请先把字段意思说明一下)

解决方案 »

  1.   

       borrows 表的字段含义:
       rno    --学号
       bno    --书名号
       bout   --   借出时间        
       bin    --应当归还时间 
       bcout  --借书的数量
    能最好用T-SQL语句编写!谢谢
      

  2.   

    --1.求出每个读者借书 应该到期还书时间!---根据会员类型计算还书时间
    select m.* ,
           应该到期还书时间 = dateadd(day , (case n.rtype when 0 then 20 when 1 then 30 when 2 then 50 end),m.bout)
    from borrows m , readers n
    where m.rno = n.rno--2.求出每个读者还书是否过期,过期多少天! 
    select * , 
           [过期多少天] = datediff(day , 应该到期还书时间 , getdate()) 
    from
    (
    select m.* ,
           应该到期还书时间 = dateadd(day , (case n.rtype when 0 then 20 when 1 then 30 when 2 then 50 end),m.bout)
    from borrows m , readers n
    where m.rno = n.rno
    ) t
    where 应该到期还书时间 < getdate()
      

  3.   

    大哥,第一题是对了,第二题说 多次为t 返回bin 列,请解释:
      

  4.   

    他说多次为t 指定了bin列,我该怎么修改啊:bin 是应该到期还书时间
    select * , 
    overdue = datediff(day ,bin, getdate()) 
    from 

    select m.* , 
    bin = dateadd(day , (case n.rtype when 0 then 20 when 1 then 30 when 2 then 50 end),m.bout) 
    from borrows m , readers n 
    where m.rno = n.rno 
    ) t 
    where bin < getdate()
      

  5.   

    dawugui 很强,受益非浅!!