如何准备长SQL查询ad JS变量



我有一个长SQL查询,应该用作javascript变量。

使用+字符分隔的行上的联系人字符串。

但是sqllite插件抛出解析错误:

我应该如何以正确的方式将查询准备为JS变量?

谢谢你的建议。

现在的查询如下:

var sqlQuery =
                "SELECT  d.date AS DATE,"+
                "IFNULL(NUMBER_OF_ALL_CALLS, 0) AS NUMBER_OF_ALL_CALLS,"+
                "IFNULL(RESULT_DONE, 0) AS RESULT_DONE,"+
                "IFNULL(RESULT_NOT_INTERESTED, 0) AS RESULT_NOT_INTERESTED,"+
                "IFNULL(RESULT_NO_APP, 0) AS RESULT_NO_APP"+
                "FROM"+
            "(SELECT DATE('1970-01-01', '+' || (t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) || ' days') date FROM"+
            "(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,"+
            "(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,"+
            "(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,"+
            "(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,"+
            "(SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4) d"+
            "LEFT JOIN"+
            "("+
            "   SELECT substr(m.date, 1, 10) as my_date, COUNT(m.ID) AS 'NUMBER_OF_ALL_CALLS',"+
            "   (SELECT COUNT(*) FROM dialed_calls subq WHERE subq.call_result = 'DONE'"+
            "AND substr(m.date, 1, 10) = substr(subq.DATE, 1, 10)) as 'RESULT_DONE',"+
            "    (SELECT COUNT(*) FROM dialed_calls subq WHERE subq.call_result = 'NOT_INTERESTED'"+
            "AND substr(m.date, 1, 10) = substr(subq.DATE, 1, 10)) as 'RESULT_NOT_INTERESTED',"+
            "    (SELECT COUNT(*) FROM dialed_calls subq WHERE subq.call_result = 'NO_APPOINTMENT'"+
            "AND substr(m.date, 1, 10) = substr(subq.DATE, 1, 10)) as 'RESULT_NO_APP'"+
            "FROM dialed_calls m"+
            "GROUP BY my_date"+
            ") t"+
            "ON d.date = t.my_date"+
            "WHERE d.date BETWEEN '2014-09-02' AND '2014-09-10'"+
            "ORDER BY d.date;";

查询遗漏了别名和关键字之间的几个",像

"IFNULL(RESULT_NO_APP, 0) AS RESULT_NO_APP"+
"FROM"

请注意RESULT_NO_APPFROM之间缺少空格。

您首先应该将所有"+替换为<space>"+

最新更新