2016-09-23 58 views
-1
SELECT item_number, item_name, description, status, active_date, inactive_date, creation_date, creation_by, last_updated_date, last_updated_by, 
(CASE WHEN inactive_date IS NULL THEN 
    CASE WHEN active_date <= curdate() THEN 'ACTIVE' ELSE 'FUTURE ACTIVE' END 
ELSE 
    CASE WHEN active_date = inactive_date THEN 'INACTIVE' 
      WHEN active_date <= curdate() AND inactive_date > curdate() THEN 'ACTIVE' 
      WHEN active_date > curdate() AND inactive_date > curdate() THEN 'FUTURE ACTIVE' 
    ELSE 'INACTIVE' END 
END) as status 

請幫助我。我是新的與MySQL。錯誤:「字段列表」中的列「狀態」未知

+0

你的表是否有一個名爲'status'的列?如果不是,則將其從選擇列表中刪除。如果確實有,則將case語句的別名改爲別的。 –

+0

你沒有'from' – Drew

+0

@Drew ....或表名等,我很確定這個錯誤是面值。 –

回答

0

在你的SELECT,你有status包括:

SELECT item_number, item_name, description, status 

自定義statusAS作爲一個新的專欄中,我懷疑你的表沒有一個status列本身。刪除statusselect它不需要轉線

SELECT item_number, item_name, description, active_date, inactive_date, creation_date, creation_by, last_updated_date, last_updated_by, 
+0

感謝@martin nyolt –

0

刪除狀態如果是case

SELECT item_number, item_name, description, active_date, inactive_date, creation_date, creation_by, last_updated_date, last_updated_by, 
(CASE WHEN inactive_date IS NULL THEN 
    CASE WHEN active_date <= curdate() THEN 'ACTIVE' ELSE 'FUTURE ACTIVE' END 
ELSE 
    CASE WHEN active_date = inactive_date THEN 'INACTIVE' 
      WHEN active_date <= curdate() AND inactive_date > curdate() THEN 'ACTIVE' 
      WHEN active_date > curdate() AND inactive_date > curdate() THEN 'FUTURE ACTIVE' 
    ELSE 'INACTIVE' END 
END) as Status 

而且from類缺少的結果。

+0

謝謝@jens它的工作原理...抱歉,這個愚蠢的錯誤....顯然沒有STATUS列在我的表.... 。現在「錯誤:'在'where子句'中的未知列'狀態'」當我這樣做時....從item_master WHERE status ='「。$ _ POST ['status']。」'「; .... In甲骨文這應該工作.... –

+0

@DienyAkmal不,你不能訪問是一個別名在哪裏聲明。你必須使用具有子句,而不是 – Jens

相關問題