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