天天看點

mysql total文法_MYSQL版本問題導緻SQL文法錯誤!unknow column 'SQLSTR'汗血寶馬

BEGIN

DECLARE sTYPE VARCHAR(20);

DROP TEMPORARY TABLE IF EXISTS temp_public_data;

CREATE TEMPORARY TABLE temp_public_data SELECT

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m-%d') as days,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m') as months,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y') as years,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%u') as weeks,

count(n.id) as pubnum,n.username from v9_news as n

WHERE DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m-%d') BETWEEN pDayBegin AND pDayEnd

GROUP BY days,n.username;

IF pType=1 THEN

SET sType = "years";

ELSEIF pType=2 THEN

SET sType = "months";

ELSEIF pType=3 THEN

SET sType = "weeks";

ELSEIF pType=5 THEN

SET sType = "days";

END IF;

SET @EE = "";

SELECT @EE:= CONCAT(@EE,',SUM(IF(username=\'',username,'\',pubnum,0)) AS \'',username,'\'') AS **SQLSTR** FROM (SELECT DISTINCT username FROM temp_public_data) A ORDER BY **LENGTH(SQLSTR)** DESC LIMIT 0,1;

SET @SQL = CONCAT('SELECT IFNULL(',sType,',\'TOTAL\') AS MONTH');

SET @SQL = CONCAT(@SQL,@EE);

SET @SQL = CONCAT(@SQL,',SUM(pubnum) as TOTAl ');

SET @SQL = CONCAT(@SQL,' FROM temp_public_data');

SET @SQL = CONCAT(@SQL,' GROUP BY ',sType,' WITH ROLLUP;');

#SELECT @SQL;

PREPARE stmt FROM @SQL;

EXECUTE stmt;

DROP TEMPORARY TABLE IF EXISTS temp_public_data;

END