2015-03-02 55 views
0

編輯:我對這本書的當前狀態不感興趣。這是用於各種結賬的歷史記錄。MySQL和一個結帳系統。由於,逾期,可用

而實際上,整個問題可能是非常格式化的以至於無法回答。然而,無論如何我都得到了答案,這很好。我主要是在尋找那WHEN - >THEN結構。


我有books可以檢出。有對date_outdate_duedate_returned

現場使用這三個領域,我希望能夠選擇ID,然後爲每個book狀態,其中狀態是int型,意思是「檢出」,「過期」或「可用」

即:

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

其中0 =可用,1 =輸出和2 =逾期(或什麼的,我真的不關心的值表示,只要他們作爲回報INT)。

我懷疑這是一個簡單的問題,但我缺乏SQL知識甚至可以啓動Google。

謝謝!

爲了清晰起見編輯,也許。

+0

您是如何處理書籍的?我的意思是,你有一個系統或一些控制面板? – 2015-03-02 18:51:27

+0

這個問題還沒有完全形成。看起來你甚至在確定你的基本模式時也在苦苦掙扎。 – 2015-03-02 18:53:06

+0

作爲附註,您可能需要考慮類型['ENUM'](http://dev.mysql.com/doc/refman/5.0/en/enum.html)的狀態。這似乎是一個合適的用例。 – War10ck 2015-03-02 18:53:56

回答

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 
+0

經過反思,我意識到我的問題很糟糕,但這仍然是我尋找的答案。所以這真的很棒。謝謝! – crowhill 2015-03-02 19:03:08