MYSQL“SELECT CASE”视图语法错误

时间:2011-10-11 08:21:38

标签: mysql sql batch-file

我有几个使用SELECT CASE语法的视图。但是当我创建备份脚本并尝试恢复时,我会收到语法错误。请记住,视图是首先成功创建的。

我的几个“SELECT CASE”语法视图就在这里

DROP VIEW IF EXISTS `v_stockmovement` ;
CREATE VIEW `v_stockmovement`   
AS
SELECT stock_mov.id AS ID,
stock_category.stock_category_code AS categorycode,
stock_mov_type,
(SELECT CASE stock_mov_type 
WHEN 1 THEN 'Stock Issue' 
WHEN 2 THEN 'Stock Reorder'
WHEN 3 THEN 'Stock Adjustment'
ELSE '' END) AS stock_mov_typedesc,
(SELECT stock_mov_unitcost * stock_mov_quantity) AS cost,
stock_mov_comments
FROM stock_mov
INNER JOIN stock ON stock.stock_code = stock_mov.stock_mov_linkstockcode
INNER JOIN stock_category ON stock_category.stock_category_code = stock.stock_linkcategory
; 

我能错过什么?

1 个答案:

答案 0 :(得分:3)

试试这个:(我已删除括号和围绕CASE语句的SELECT)

DROP VIEW IF EXISTS `v_stockmovement` ;
CREATE VIEW `v_stockmovement`   
AS
SELECT stock_mov.id AS ID,
stock_category.stock_category_code AS categorycode,
stock_mov_type,
CASE stock_mov_type 
  WHEN 1 THEN 'Stock Issue' 
  WHEN 2 THEN 'Stock Reorder'
  WHEN 3 THEN 'Stock Adjustment'
  ELSE '' 
END stock_mov_typedesc,
stock_mov_unitcost * stock_mov_quantity AS cost,
stock_mov_comments
FROM stock_mov
INNER JOIN stock ON stock.stock_code = stock_mov.stock_mov_linkstockcode
INNER JOIN stock_category ON stock_category.stock_category_code = stock.stock_linkcategory
;