50 lines
2.0 KiB
SQL
50 lines
2.0 KiB
SQL
-- ============================================================
|
||
-- 脚本名称: transfer_summary.sql
|
||
-- 功 能: 指定年月的转卡汇总报表(按下级代理分组,含合计行)
|
||
-- 数据库 : agent_db
|
||
-- 用 法:
|
||
-- 1. 修改下方【参数设置】中的变量值
|
||
-- 2. 在 Navicat 中执行全部脚本
|
||
-- 3. 结果集右键 → Export → Excel 可导出表格
|
||
-- ============================================================
|
||
|
||
|
||
-- ============================================================
|
||
-- 【参数设置】 ← 修改这里
|
||
-- ============================================================
|
||
SET @p_year = 2026; -- 年份
|
||
SET @p_month = 3; -- 月份(1-12)
|
||
SET @p_from_sales = 10437216; -- 发卡来源代理ID(上级代理)
|
||
SET @p_agent_id = 'veRa0qrBf0df2K1G4de2tgfmVxB2jxpv'; -- 代理商ID
|
||
|
||
|
||
-- ============================================================
|
||
-- 【汇总报表】按下级代理分组,最后一行为转卡总计
|
||
-- ============================================================
|
||
SELECT
|
||
IF(
|
||
GROUPING(t.satr_salesid),
|
||
'★ 合计',
|
||
CAST(t.satr_salesid AS CHAR)
|
||
) AS '代理ID',
|
||
IF(
|
||
GROUPING(t.satr_salesid),
|
||
'—',
|
||
MAX(su.saus_nickname)
|
||
) AS '代理昵称',
|
||
COUNT(t.idx) AS '转卡次数',
|
||
SUM(t.satr_amount) AS '转卡总量'
|
||
FROM
|
||
sales_transferbill t
|
||
LEFT JOIN sales_user su
|
||
ON t.satr_agentid = su.saus_agentid
|
||
AND t.channel_id = su.saus_channelid
|
||
AND t.satr_salesid = su.saus_salesid
|
||
WHERE
|
||
t.satr_agentid = @p_agent_id
|
||
AND t.from_sales = @p_from_sales
|
||
AND YEAR(t.satr_transfertime) = @p_year
|
||
AND MONTH(t.satr_transfertime) = @p_month
|
||
GROUP BY
|
||
t.satr_salesid WITH ROLLUP;
|