2016-09-23 59 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

相关问题