使用MySql Workbench时出现语法错误

时间:2012-09-28 14:41:10

标签: mysql sql mysql-workbench

我试图在不使用过程或函数的情况下在MySQL中运行以下代码。我一直收到语法错误。有没有人看到这个代码有什么问题。我是否可以在不使用过程或函数的情况下运行此代码。

DECLARE @Machine varchar(30);
 SET @Machine = @MachineType;



 IF @Machine = 'server' 
THEN SELECT COUNT(*) AS 'Total Servers'
 FROM agentcomputers AS A
 WHERE A.groupid IN('521','637');

 ELSEIF @Machine = 'bdr server'
 THEN SELECT COUNT(*) AS 'Total BDR Servers'
 FROM agentcomputers AS A
 WHERE A.groupid =521;

 ELSEIF @Machine = 'non-bdr server'
 THEN SELECT COUNT(*) AS 'Total Non-BDR Servers'
 FROM agentcomputers AS A
 WHERE A.groupid =637;


ELSEIF @Machine = 'workstation'
 THEN SELECT COUNT(*) AS 'Total Workstations'
 FROM agentcomputers AS A
 WHERE A.groupid =638;

 ELSEIF @Machine = 'laptop'
 THEN SELECT COUNT(*) AS 'Total Laptops'
 FROM agentcomputers AS A
 WHERE A.groupid =650;

 ELSEIF @Machine = 'monitored computer'
 THEN SELECT COUNT(*) AS 'Total Monitored Computers'
 FROM agentcomputers AS A
 WHERE A.groupid =1;

 ELSEIF @Machine = 'new computer'
 THEN SELECT COUNT(*) AS 'Total New Computers'
 FROM agentcomputers AS A
 WHERE A.groupid =648;


ELSEIF @Machine = 'managed service'
 THEN SELECT COUNT(*) AS 'Total Managed Services'
 FROM agentcomputers AS A
 WHERE A.groupid =522;

 ELSEIF @Machine = 'allmachines'
 THEN SELECT COUNT(*) AS 'Total Machines'
 FROM agentcomputers AS A
 WHERE A.groupid IN('1','521','522','637','638','648','650');

 /*
 THESE IF STATEMENTS RETURN THE COUNTS FOR THE MOBIL DEVICES
 */

 ELSEIF @Machine = 'phone'
 THEN SELECT COUNT(*) AS 'Total Mobil Phones'
 FROM mobiledevices AS M
 INNER JOIN mobilemastergroups AS MM
 ON MM.groupID = M.deviceType 
WHERE M.deviceType=2;

 ELSEIF @Machine = 'tablet'
 THEN SELECT COUNT(*) AS 'Total Mobil Tablets'
 FROM mobiledevices AS M
 INNER JOIN mobilemastergroups AS MM
 ON MM.groupID = M.deviceType 
WHERE M.deviceType=3;

 ELSEIF @Machine = 'ios'
 THEN SELECT COUNT(*) AS 'Total Mobil iOS Devices'
 FROM mobiledevices AS M
 INNER JOIN mobilemastergroups AS MM
 ON MM.groupID = M.deviceType 
WHERE M.deviceType=4;

 ELSEIF @Machine = 'android'
 THEN SELECT COUNT(*) AS 'Total Mobil Android Devices'
 FROM mobiledevices AS M
 INNER JOIN mobilemastergroups AS MM
 ON MM.groupID = M.deviceType 
WHERE M.deviceType=5;


ELSEIF @Machine = 'allmobil'
 THEN SELECT COUNT(*) AS 'Total Mobil Devices'
 FROM mobiledevices AS M;




END IF;

0 个答案:

没有答案