我是sql新手,有人能帮我解决这个问题吗?提前谢谢
我有一个名为display total hours in minutes的字段。如果该字段的值为1,则应执行转换查询,并且该值应以hh:mm显示,否则应以十进制格式显示。我可以用sql case语句来执行
new Zend_Db_Expr("CONCAT(FLOOR(att.Total_Hours),':', LPAD(ROUND((att.Total_Hours - FLOOR(att.Total_Hours)) * 60) % 60,2,0)) as Total_Hours")
这个查询工作正常,并将总小时数从十进制格式转换为hh:mm格式。但是这个dosent检查任何条件,当我为此包含case语句时,它抛出一个语法错误。
->joinLeft(array('ET'=>$this->_ehrTables->empType),'emp.Employee_Id=ET.Employee_Type_Id',
array('Display_Total_Hours_In_Minutes' => new Zend_Db_Expr('CASE WHEN ET.Display_Total_Hours_In_Minutes==1 THEN CONCAT(FLOOR(att.Total_Hours),':', LPAD(ROUND((att.Total_Hours - FLOOR(att.Total_Hours)) * 60) % 60,2,0)) ELSE att.Total_Hours END')))
暂无答案!
目前还没有任何答案,快来回答吧!