1. 程式人生 > >mysql 儲存過程 為encharts 提供的serise 資料

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 */

相關推薦

mysql 儲存過程 encharts 提供serise 資料

mysql複雜查詢可以將查詢中間結果放到中間表中 /*帶引數的 資料統計 */ /*dateFormat  為必須傳遞的引數  引數示例userids:'1','402881a859aa10940159aa2e022f0017' startDate:2015-01 ,end

MySql 儲存過程 臨時表 無法插入資料

今天在寫儲存過程的時候,發現一個問題就是,sql明明能查出資料,為啥無法插入到臨時表、實體表呢? 儲存過程擷取如下: BEGIN /*****************************

MYSQL儲存過程迴圈遍歷插入資料

本示例通過 while...end while 迴圈控制遊標來實現插入表記錄。 DROP PROCEDURE IF exists pro_initCategoryForTradingEntity; create procedure pro_initCategoryForTr

mysql儲存過程以及定時排程清除資料

1。 首先mysql必須使用5.1.X以上的版本,因為只有在該版本之上,mysql才提供 儲存過程以及EVENT(事件)支援。     檢視mysql版本可以使用命令:SELECT VERSION(); 進行檢視。 2。 分別使用  SHOW VARIABLES LIKE

mysql 儲存過程資料修改 沒資料插入

BEGIN DECLARE sid INT(10) DEFAULT 0; DECLARE money INT(10) DEFAULT 0; DECLARE row_count INT; DECLARE done INT DEFAULT FALSE;#預設遊標讀出有記錄 DECLA

mysql儲存過程以及日誌和資料恢復

MySQL儲存過程 Mysql儲存過程是一組為了完成特定功能的SQL語句集,經過編譯之後儲存在資料庫中, 當需要使用該組SQL語句時使用者只需要通過指定儲存過程的名字並給定引數就可以呼叫執行它了 簡而言之就是一組已經寫好的命令,需要使用的時候拿出來用就可以了。 \d //(修改語句結

mysql 使用儲存過程定期插入一定的資料

delimiter $$ create procedure insertyonghu2() begin declare i varchar(20); declare j varchar(20); declare x int; set x=50; set i = 'li'; set j='xiaoto

mysql儲存過程迴圈事務插入資料

DROP PROCEDURE IF EXISTS insertTUserStatement; create procedure insertTUserStatement(IN num int) begin declare i int; start transac

mysql儲存過程插入十萬條資料

用儲存過程建立一個類似這樣的表,從0到99999的五位數,不足五位數的補足 delimiter // #定義識別符號為雙斜槓 drop procedure if exists init; #如果

mysql儲存過程去除重複資料

CREATE DEFINER=`root`@`%` PROCEDURE `del_incoming_pointer`() BEGIN   /* 定義變數一 */      DECLARE paramId int;      DECLARE paramCode VARCHAR

mysql儲存過程引數陣列或者物件的處理方式

問題場景:做一個物品系統, 需要批量存入。 思考:儲存過程的的引數不支援陣列,是否可以用json字串代替 測試用的JSON字串: let obj = { itemlist:[ { regid:0, iteminfo:

MySQL使用儲存過程資料庫中全部的表增加備用欄位

需求描述 要為資料庫裡的所有的表統一加上十六個備用欄位,前提是備用欄位名取表名前三位,拼接上備用1-16 , 16個欄位中,其中8個varchar, 4個int, 4個datetime 1.建立一個簡單的表 DROP TABLE customer_detail_info; C

mysql儲存過程判斷不空和不空,查詢結果賦值變數

直接看例子,判斷為空是is null delimiter // create procedure proc__pre_activity_scan() begin    declare p_tid int(10);    set @p_tid=(select tid fro

MySQL儲存過程decimal得到值0.00問題

DECIMAL從MySQL 5.1引入,列的宣告語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值範圍如下: ·M是數字的最大數(精度)。其範圍為1~65(在較舊的MySQL版本中,允許的範圍是1~254),M 的預設值是10。 ·D是小數點

MySQL儲存過程從另外兩個表中取資料存整合其他資料儲存在一張新的表裡

業務需求: 通過傳入的引數x 從A表拿A.NAME(唯一一條記錄),從B表拿B.ID,B.NAME(多條記錄),儲存至C表。 DROP PROCEDURE IF EXISTS P_AUTO_SCHEDULING; CREATE PROCEDURE P_AUTO_SCHED

使用mysql儲存過程快速插入百萬mysql測試資料

建表 使用者表CREATE TABLE `user` (          `id` BIGINT (20),          `name` VARCHAR(20)     )ENGINE=INNO

mysql儲存過程---返回列表資料需要用到遊標

說明:在呼叫儲存過程後,未遇到錯誤訊息時處理程式未被啟用,當執行INSERT語句出現出錯訊息時,MySQL檢查是否為這個錯誤程式碼定義了處理程式。如果有,則啟用該處理程式,本例中,INSERT語句導致的錯誤訊息剛好是SQLSTATE程式碼中的一條。接下來執行處理程式的附加語句(SET @x2=1)。此後,My

解決 mysql 儲存過程查詢資料方式是變數拼接表名的寫法

需求: 用儲存過程查詢動態表名的資料 遇到問題: 查詢語句 from後面不能直接用引數查詢 MYSQL不支援直接使用變數做表名,會把引數名當做表名查詢,報錯 解決方法: 把查詢語句和變數通過concat連線付給變數。通過執行變數來執行此語句 sql程式碼:

MySQL儲存過程:批量使用者授權

編寫出這些指令碼的需求是把慢查日誌寫入資料庫中,方便檢視。 1. 由於預設的mysql.slow_log表使用的是csv資料引擎,不支援對資料進行索引,所以需要將其修改為MyISAM引擎,並對query_time欄位進行索引以優化查尋效率。 2. 需要對所有的使用者進行授權

oracle儲存過程轉換mysql儲存過程例項總結

最近在接觸資料庫的有關知識,因為水平有限,對資料庫方面的一些知識缺乏瞭解,這次遇見的主要是 資料庫的儲存過程,根據公司專案需求,將oracle的儲存過程切換為mysql的儲存過程,首先oracle的儲存過程與mysql的儲存過程差別是很大的(語法差別很大),通過好多天的網上查