first commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE gex_chart_comm(
|
||||
IN p_functiontag VARCHAR(20), -- 程式代號(可以自行控制讀取的資料來源)
|
||||
IN p_date1 VARCHAR(10),
|
||||
IN p_date2 VARCHAR(10),
|
||||
IN p_type VARCHAR(20) -- bar/line/pie ...
|
||||
)
|
||||
/*
|
||||
function : 客戶訂單業績排行前 10 的統計圖, 支援 5種圖形顯示, 這是 amis chart 類的報表的標準寫法
|
||||
description: 將一般報表, 轉為 amis queryGroup 類的報表的 sp 範本 (本程式待驗證 ...)
|
||||
build date : 2021/12/02
|
||||
|
||||
call sample:
|
||||
CALL gex_chart_comm('opor11','2020-01-01','2020-12-31','pie')
|
||||
|
||||
modify history
|
||||
item who date modify docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2021/12/02 新增
|
||||
2 Michael 2025/08/06 改寫為 MariaDB 版本
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_uuid CHAR(100);
|
||||
DECLARE v_data TEXT;
|
||||
|
||||
-- 生成 UUID
|
||||
SET v_uuid = UUID();
|
||||
|
||||
-- 先刪除可能存在的舊數據
|
||||
DELETE FROM dw_sys_chart_data WHERE uuid = v_uuid;
|
||||
|
||||
-- 客戶業績排行前 10
|
||||
IF p_functiontag = 'OPOR11' then
|
||||
INSERT INTO dw_sys_chart_data (uuid, functiontag, xname, xvalue)
|
||||
SELECT v_uuid, p_functiontag, IFNULL(c.corpshortname, m.custid), CAST(SUM(totalamount) AS DECIMAL(18,2)) AS amt
|
||||
FROM opoorder2_m m
|
||||
LEFT JOIN bascustomer c ON m.custid = c.custid
|
||||
WHERE billdate >= p_date1 AND billdate <= p_date2
|
||||
GROUP BY IFNULL(c.corpshortname, m.custid)
|
||||
ORDER BY SUM(totalamount) DESC
|
||||
LIMIT 10;
|
||||
-- else if ...
|
||||
end if;
|
||||
|
||||
-- 調用通用函數 (假設已存在對應的 MariaDB 函數)
|
||||
SELECT sys_genchart(v_uuid, p_type) INTO v_data;
|
||||
|
||||
-- 處理模板數據 (假設已存在對應的 MariaDB 存儲過程)
|
||||
CALL sys_chart_process(v_uuid);
|
||||
|
||||
-- 返回結果
|
||||
SELECT 0 AS code, 'ok' AS msg;
|
||||
SELECT v_data AS jsoncode;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user