mysql 儲存過程 為encharts 提供的serise 資料
mysql複雜查詢可以將查詢中間結果放到中間表中
/*帶引數的 資料統計 */
/*dateFormat 為必須傳遞的引數引數示例userids:'1','402881a859aa10940159aa2e022f0017'
startDate:2015-01 ,endDate:2017-03, dateFormat:%Y-%m */
CREATE PROCEDURE `llftest1`(IN `userids` VARCHAR(300), IN `startDate` VARCHAR(50), IN `endDate` VARCHAR(50), IN `dateFormat` VARCHAR(50))
BEGIN
DECLARE where_SQL VARCHAR(1000) DEFAULT '';
/*DECLARE V_SQL2 VARCHAR(300) DEFAULT '';*/
/*清空表*/
truncate table tempData;
/*插入暫存資料*/
SET @V_SQL = concat('insert into tempData select ins.creator, count(ins.id), date_format(ins.createTime,"', dateFormat, '") from ins_item ins where 1=1');
if startDate is not null then
set where_SQL = concat(where_SQL, ' and date_format(ins.createTime,"', dateFormat, '") >= "', startDate, '"');
end if;
if endDate is not null then
set where_SQL = concat(where_SQL, ' and date_format(ins.createTime,"', dateFormat, '") <= "', endDate, '"');
end if;
if userids is not null then
set where_SQL = concat(where_SQL, ' and ins.creator in (', userids, ')');
end if;
set @sentence = concat(@V_SQL , where_SQL, ' group by date_format(ins.createTime,"', dateFormat, '"), ins.creator');
/*select @sentence;*/
prepare stmt from @sentence; -- 預編釋一下。 “stmt”預編釋變數的名稱,
execute stmt; -- 執行SQL語句
deallocate prepare stmt; -- 釋放資源
/*根據暫存資料組裝出需要的資料*/
SELECT group_concat(tempData.typeDate, ':', tempData.data) as datas, uu.name as usname FROM tempData, user uu where tempData.userid = uu.id group by tempData.userid;
END
/*帶引數的 資料統計 ------------- end */