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 &