文件记录体格式
序号 | 域 名 | 长度 | 位 置 | 填写说明 |
1 | 记录体标记 | 2 | 1-2 | 填“50” |
2 | 话单生成日期 | 8 | 3-10 | YYYYMMDD |
3 | SP企业代码 | 20 | 11-30 | SP企业代码 同文件名中SP企业代码,右对齐,左补空格 |
4 | 业务代码 | 20 | 31-50 | 不包含免费业务 左对齐,右补空格 |
5 | 计费类型 | 2 | 51-52 | 01:按次 02:包月 03:包天 04:包次 |
6 | 资费 | 5 | 53-57 | 单位:分 不保留小数,小数位四舍五入 右对齐,左补0 |
7 | SP分成比例 | 4 | 58-61 | SP方的分成比例*1000 纯数字,不带小数点和百分符号的整数 右对齐,左补0 取值范围:0000-1000 |
8 | 话单条数 | 11 | 62-72 | 成功计费话单条数,不包含免费和“查询”类型的话单 右对齐,左补0 |
9 | 计费用户归属省代码 | 3 | 73-75 | 填写计费用户归属省代码,编码规则同对帐责任单位编码 |
10 | 信息费总额 | 12 | 76-87 | 单位:分 纯数字,不保留小数,小数位四舍五入 右对齐,左补0 信息费总额 = 话单条数 * 资费 |
11 | 保留字段1 | 31 | 88-118 | 填空格 |
12 | 回车 | 1 | 119 | Carriage Return |
13 | 换行 | 1 | 120 | Line Feed |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SELECT CONCAT( '50' , a.t, LPAD( '901077' , 20, ' ' ), RPAD(a.serviceid, 20, ' ' ), '01' , LPAD( '100' , 5, '0' ), LPAD( '850' , 4, '0' ), LPAD(a.total, 11, 0), '591' , LPAD(a.sumfee, 12, 0), REPEAT( ' ' , 31), '\r' , '\n' )FROM( SELECT LEFT (log_time, 8) AS t, serviceid, COUNT (*) AS total, SUM (feecode) AS sumfee FROM mt_log_201107 WHERE spcode = '901077' AND region = '0591' AND feecode > 0 GROUP BY t, serviceid) a |
生成文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | mysql -uroot -f spservice -Ne "SELECT CONCAT( '50', a.t, LPAD('901077', 20, ' '), RPAD(a.serviceid, 20, ' '), '01', LPAD('100', 5, '0'), LPAD('850', 4, '0'), LPAD(a.total, 11, 0), '591', LPAD(a.sumfee, 12, 0), REPEAT(' ', 31), '\r' )FROM( SELECT LEFT(log_time, 8) AS t, serviceid, COUNT(*) AS total, SUM(feecode) AS sumfee FROM mt_log_201107 WHERE spcode = '901077' AND region = '0591' AND feecode > 0 GROUP BY t, serviceid) a" > spdz_001_90107700000000000000_591_201107.txt & |