MySQL和结账系统。到期,逾期,可用

时间:2015-03-02 18:47:59

标签: mysql

编辑:我对这本书的现状不感兴趣。这是各种结账的历史记录。

实际上,整个问题可能是如此畸形以至于无法回答。然而,无论如何我得到了答案,这很好。我主要是在寻找WHEN - > THEN结构。


我有books可以检出。 date_outdate_duedate_returned

有一个字段

使用这三个字段,我希望能够为每个book选择id和状态,其中status是int,意思是“签出”,“过期”或“可用”

那是:

\-----------------\
|  ID    | status |
|-----------------|
|  1     |    0   |
|  2     |    2   |
|  3     |    1   |
-------------------

其中0 =可用,1 = out和2 =过期(或者其他什么,我实际上并不关心值代表什么,只要它们作为int返回)。

我怀疑这是一个简单的问题,但我缺乏SQL知识甚至开始谷歌搜索。

谢谢!

为了清晰起见,也许。

1 个答案:

答案 0 :(得分:0)

SELECT id,
CASE 
  WHEN date_returned>=date_due AND date_returned>=date_out THEN 0
  WHEN date_due>=date_out AND date_due>date_returned THEN 2
  WHEN date_out>date_due AND date_out>date_returned THEN 3
  ELSE 4 END as status
FROM books