文件记录体格式
序号 | 域 名 | 长度 | 位 置 | 填写说明 |
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 &
|