新增数据库相关语句脚本

This commit is contained in:
2026-04-14 12:02:21 +08:00
parent a7c2448207
commit 32f0d87499
9 changed files with 1680 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
-- ============================================================
-- 脚本名称: room_players.sql
-- 功 能: 查询指定房间号的所有历史对局及每局玩家信息
-- 数据库 : grade_db + game_db跨库同一RDS实例
-- RDS: rm-bp1749tfxu2rpq670lo
-- 说明 :
-- 同一房间号可能在不同时间出现多次,结果按开房时间分组。
-- 输出按「开房时间 DESC → 得分 DESC」排序
-- 相同开房时间的行即为同一场对局,可在结果中直接区分。
-- ============================================================
-- ============================================================
-- 【参数设置】 ← 修改这里
-- ============================================================
SET @p_agentid = 'veRa0qrBf0df2K1G4de2tgfmVxB2jxpv'; -- 代理商ID
SET @p_roomcode = 0; -- 房间号plgr_roomcode
-- ============================================================
-- 【查询】指定房间号的所有历史对局玩家明细
-- 结果按开房时间倒序排列,同一开房时间为同一场对局
-- ============================================================
SELECT
DATE_FORMAT(pg.plgr_createtime, '%Y-%m-%d %H:%i:%s') AS '创建时间',
DATE_FORMAT(pg.plgr_overtime, '%Y-%m-%d %H:%i:%s') AS '结束时间',
pg.plgr_roomcode AS '房间号',
pg.plgr_playerid AS '玩家ID',
p.play_nickname AS '玩家昵称',
pg.plgr_score AS '得分',
pg.plgr_winner AS '是否大赢家1=是)',
pg.plgr_deductcard AS '扣除房卡',
DATE_FORMAT(pg.plgr_makewartime, '%Y-%m-%d %H:%i:%s') AS '开战时间',
pg.plgr_roomtype AS '房间类型',
pg.plgr_gameid AS '游戏ID',
g.game_name AS '游戏名称'
FROM
grade_db.player_grade pg
LEFT JOIN game_db.player p
ON pg.plgr_agentid = p.play_agentid
AND pg.plgr_playerid = p.play_playerid
LEFT JOIN game_db.game g
ON pg.plgr_gameid = g.game_gameid
WHERE
pg.plgr_agentid = @p_agentid
AND pg.plgr_roomcode = @p_roomcode
ORDER BY
pg.plgr_createtime DESC,
pg.plgr_score DESC;

View File

@@ -0,0 +1,46 @@
-- ============================================================
-- 脚本名称: transfer_detail.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
t.from_sales AS '发卡代理ID',
su_from.saus_nickname AS '发卡代理昵称',
t.satr_salesid AS '接收代理ID',
su_to.saus_nickname AS '接收代理昵称',
t.satr_amount AS '转卡数量',
DATE_FORMAT(t.satr_transfertime, '%Y-%m-%d %H:%i:%s') AS '转卡时间'
FROM
sales_transferbill t
LEFT JOIN sales_user su_to
ON t.satr_agentid = su_to.saus_agentid
AND t.channel_id = su_to.saus_channelid
AND t.satr_salesid = su_to.saus_salesid
LEFT JOIN sales_user su_from
ON t.satr_agentid = su_from.saus_agentid
AND t.from_sales = su_from.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
ORDER BY
t.satr_transfertime ASC;

View File

@@ -0,0 +1,49 @@
-- ============================================================
-- 脚本名称: 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;

View File

@@ -0,0 +1,45 @@
-- ============================================================
-- 脚本名称: update_player_roomcard.sql
-- 功 能: 更新指定玩家的房卡数量
-- 数据库 : game_dbRDS: rm-bp1749tfxu2rpq670lo
-- 用 法:
-- 1. 修改下方【参数设置】中的变量值
-- 2. 先执行【查询确认】,核对目标玩家信息无误
-- 3. 确认无误后再执行【执行更新】
-- ============================================================
-- ============================================================
-- 【参数设置】 ← 修改这里
-- ============================================================
SET @p_agentid = 'veRa0qrBf0df2K1G4de2tgfmVxB2jxpv'; -- 代理商ID
SET @p_playerid = 0; -- 玩家IDplay_playerid
SET @p_roomcard = 0; -- 要设置的房卡数量
-- ============================================================
-- 【第一步:查询确认】执行后确认玩家信息正确再继续
-- ============================================================
SELECT
play_agentid AS '代理商ID',
play_playerid AS '玩家ID',
play_nickname AS '玩家昵称',
play_roomcard AS '当前房卡数',
@p_roomcard AS '更新后房卡数'
FROM
player
WHERE
play_agentid = @p_agentid
AND play_playerid = @p_playerid;
-- ============================================================
-- 【第二步:执行更新】确认玩家信息无误后执行此段
-- ============================================================
UPDATE player
SET play_roomcard = @p_roomcard
WHERE play_agentid = @p_agentid
AND play_playerid = @p_playerid;
-- 输出影响行数1 = 更新成功0 = 未找到对应玩家)
SELECT ROW_COUNT() AS '影响行数1=成功0=未找到玩家)';