2017-04-05 68 views
0

在phpmyadmin中执行以下查询,显示输出,但sql错误显示在导出的csv文件中。 这是查询:下面在导出的excel文件中显示错误

SELECT engageboost_customers.`id`    AS User_ID, 
     Concat(`first_name`, ' ', `last_name`) AS Name, 
     `email`, 
     `phone`, 
     `created`        AS Registration_date, 
     `lastlogin`, 
     Count(engageboost_ordermaster.id)  AS Total_Orders, 
     Max(created_date)      AS Last_Order_Date, 
     Min(created_date)      AS First_order_date, 
     Sum(paid_amount)      AS Total_Amount_Paid, 
     CASE 
     WHEN `device_token_ios` IS NULL THEN 'NO' 
     WHEN `device_token_android` IS NULL THEN 'NO' 
     ELSE 'YES' 
     end         AS Active_App, 
     (SELECT CASE 
       WHEN applied_coupon IS NULL THEN 'No' 
       WHEN applied_coupon = '' THEN 'No' 
       ELSE 'Yes' 
       end AS 'secound_order_copon' 
     FROM engageboost_ordermaster 
     WHERE engageboost_customers.id = engageboost_ordermaster.customer_id 
     LIMIT 1, 1)       AS Secound_order_coupon_utilized, 
     (SELECT CASE 
       WHEN applied_coupon IS NULL THEN 'No' 
       WHEN applied_coupon = '' THEN 'No' 
       ELSE 'Yes' 
       end AS 'secound_order_copon' 
     FROM engageboost_ordermaster 
     WHERE engageboost_customers.id = engageboost_ordermaster.customer_id 
     LIMIT 2, 1)       AS Third_order_coupon_utilized, 
     (SELECT CASE 
       WHEN engageboost_ordermaster.refferal_code = '' THEN 'No' 
       WHEN engageboost_ordermaster.refferal_code IS NULL THEN 'No' 
       ELSE engageboost_ordermaster.refferal_code 
       end AS refcode 
     FROM engageboost_ordermaster 
     WHERE engageboost_customers.id = engageboost_ordermaster.customer_id 
     LIMIT 0, 1)       AS 'firstordersecode' 
FROM `engageboost_customers` 
     LEFT OUTER JOIN engageboost_ordermaster 
        ON engageboost_customers.id = 
         engageboost_ordermaster.customer_id 
GROUP BY engageboost_customers.id 

是我的csv文件,但输出显示得到错误。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM' at line 1

+0

你是什么错误?粘贴大量的SQL并不是很有用。 – cosmoonot

+0

请格式化你的SQL在这样的地方:http://www.dpriver.com/pp/sqlformat.htm,并添加一些更多的细节到您的问题 – devzero

+0

您是否尝试删除'firstordersecode'附近的单引号, 'FROM'? – toonice

回答

0

你可以试试这个,队友:

SELECT 
    eo_1.`id` AS 'User_ID', 
    CONCAT(ec.`first_name`, ' ', ec.`last_name`) AS 'Name', 
    ec.`email`, 
    ec.`phone`, 
    ec.`created` AS 'Registration_date', 
    ec.`lastlogin`, 
    COUNT(eo_1.id) AS 'Total_Orders', 
    MAX(ec.created_date) AS 'Last_Order_Date', 
    MIN(ec.created_date) AS 'First_order_date', 
    SUM(ec.paid_amount) AS 'Total_Amount_Paid', 
    CASE 
     WHEN ec.`device_token_ios` IS NULL THEN 'NO' 
     WHEN ec.`device_token_android` IS NULL THEN 'NO' 
     ELSE 'YES' 
    END AS 'Active_App', 
    eo_2.secound_order_copon AS 'Secound_order_coupon_utilized', 
    eo_3.secound_order_copon AS 'Third_order_coupon_utilized', 
    eo_4.refcode AS 'firstordersecode' 
FROM 
    engageboost_customers ec 
    LEFT JOIN engageboost_ordermaster eo_1 ON eo_1.customer_id = ec.id 
    LEFT JOIN (
     SELECT 
      customer_id, 
      CASE 
       WHEN applied_coupon IS NULL THEN 'No' 
       WHEN applied_coupon = '' THEN 'No' 
       ELSE 'Yes' 
      END AS 'secound_order_copon' 
     FROM engageboost_ordermaster 
     LIMIT 1 , 1 
    ) eo_2 ON eo_2.customer_id = ec.id 
    LEFT JOIN (
     SELECT 
      customer_id, 
      CASE 
       WHEN applied_coupon IS NULL THEN 'No' 
       WHEN applied_coupon = '' THEN 'No' 
       ELSE 'Yes' 
      END AS 'secound_order_copon' 
     FROM engageboost_ordermaster 
     LIMIT 2 , 1 
    ) eo_3 ON eo_3.customer_id = ec.id 
    LEFT JOIN (
     SELECT 
      customer_id, 
      CASE 
       WHEN engageboost_ordermaster.refferal_code = '' THEN 'No' 
       WHEN engageboost_ordermaster.refferal_code IS NULL THEN 'No' 
       ELSE engageboost_ordermaster.refferal_code 
      END AS 'refcode' 
     FROM engageboost_ordermaster 
     LIMIT 0 , 1 
    ) eo_4 ON eo_4.customer_id = ec.id 
GROUP BY engageboost_customers.id;