这是我的第一篇文章,我真的需要帮助......我得到了这个场景......
- 从 dbf 文件中导出数据
- 将 dbf 文件数据保存到普通文件中,所有值由“,”分隔
- 然后我净化数据并只取我需要的字段
- 取这些字段名称并在 mysql 上创建表
- 将数据导入mysql(加载数据infile)
- 处理数据并获得计算值
- 使用这些值生成 csv
所以....直到第6步一切都好,但是当我尝试导出查询时一切都出错了,数据永远不会输出....大约运行2天,没有任何反应....仍在处理但没有输出
这是查询:
SELECT (DATE_FORMAT(NOW(), '%Y%m%d')),'0001391343',
IFNULL(LPAD(UPPER(TCPCB.CODICLIE), 10, '0'), " "),'VE0801',
(SELECT IFNULL(LPAD(REPLACE(IFNULL(SUM(C.MONTO),0), '.', ''), 15, '0'),
'000000000000000') FROM TCPCB C WHERE C.SIGNO = "D" AND C.CODICLIE = TCPCB.CODICLIE),
(SELECT IFNULL(LPAD(REPLACE(IFNULL(SUM(C.MONTO),0), '.', ''), 15, '0'),
'000000000000000') FROM TCPCB C WHERE C.SIGNO = "C" AND C.CODICLIE = TCPCB.CODICLIE),
(SELECT IFNULL(LPAD(REPLACE(((SELECT IFNULL(SUM(C.MONTO),0) FROM TCPCB C
WHERE C.SIGNO = "D" AND C.CODICLIE = TCPCB.CODICLIE)-(SELECT IFNULL(SUM(C.MONTO),0)
FROM TCPCB C WHERE C.SIGNO = "C" AND C.CODICLIE = TCPCB.CODICLIE)), '.', ''), 15, '0'),
'000000000000000')),
IFNULL(LPAD(UPPER(TCPCB.SIGNO), 1, ' '), " "),
IF(((((SELECT IFNULL(SUM(C.MONTO),0) FROM TCPCB C WHERE C.SIGNO = "D" AND C.CODICLIE = TCPCB.CODICLIE)-
(SELECT IFNULL(SUM(C.MONTO),0) FROM TCPCB C WHERE C.SIGNO = "C" AND C.CODICLIE = TCPCB.CODICLIE))*
DAY(LAST_DAY(NOW())))/
(SELECT IFNULL(SUM(TOTADOCU),0) FROM TFACHISA WHERE TIPODOCU = "FA" AND CODICLIE = TCPCB.CODICLIE)-
(SELECT IFNULL(SUM(TOTADOCU),0) FROM TFACHISA WHERE TIPODOCU = "DV" AND CODICLIE = TCPCB.CODICLIE)) < 0, " 0",
LPAD(ROUND(((((SELECT IFNULL(SUM(C.MONTO),0) FROM TCPCB C WHERE C.SIGNO = "D" AND C.CODICLIE = TCPCB.CODICLIE)-
(SELECT IFNULL(SUM(C.MONTO),0) FROM TCPCB C WHERE C.SIGNO = "C" AND C.CODICLIE = TCPCB.CODICLIE))*
DAY(LAST_DAY(NOW())))/
(SELECT IFNULL(SUM(TOTADOCU),0) FROM TFACHISA WHERE TIPODOCU = "FA" AND CODICLIE = TCPCB.CODICLIE)-
(SELECT IFNULL(SUM(TOTADOCU),0) FROM TFACHISA WHERE TIPODOCU = "DV" AND CODICLIE = TCPCB.CODICLIE)),0), 4, " "))
INTO OUTFILE 'C:\\Users\\username\\Desktop\\gg.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY ''
ESCAPED BY ''
LINES TERMINATED BY '\n'
FROM TCPCB
INNER JOIN TFACHISA ON TFACHISA.CODICLIE = TCPCB.CODICLIE
WHERE 1 GROUP BY TCPCB.CODICLIE
关于这个的事情是....如果我删除 outfile 行一切都很好,在 7 秒内得到结果....(1.844 d / 7.703 f)....引擎是 MyISAM
PD:使用 myisam 因为我只需要读取数据和过程值,然后我删除所有内容并保留 csv ......原谅我的英语......
谢谢!!
更新:
现在的过程是服务器端的 conf,尝试全新安装,一切都很好,但现在当我使用 where 条件失去连接时,查询永远不会返回数据......只有 where 条件或内部连接。
解决了:
很长一段时间,但终于解决了,使用 MyISAM 并在主要字段中使用多索引....但是,存储过程在这里是个好主意...谢谢!