2016-04-15 58 views
0

我的MySQL查询我想2日期间获得的数据,但它显示1064错误

SELECT 
    testid, 
    testName, 
    DATE(testviewaudit.datetime) , 
    SUM(action=1) AS view, 
    SUM(action=2) AS start, 
    SUM(action=3) AS finish 
FROM testviewaudit 
INNER JOIN tmtests 
ON estviewaudit.testid = tmtests.tsid 
WHERE DATE(testviewaudit.datetime) >= '2016-03-12' 
AND DATE(testviewaudit.datetime) <= '2016-03-15' 
GROUP BY testid; 

那么使用我收到1064错误

+0

什么之间只是使用的是错误信息? –

+0

错误代码:1064.您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'testviewaudit.testid = tmtests.tsid where action = 1 o'处的内部连接tmtests附近使用。 –

+0

将错误消息写入您的问题。但是,我没有看到错误。可能是'view'或'start'制造问题。 –

回答

0

试试上面的查询,以避免使用MySQL reserved wordsviewstart

SELECT testid, testname, DATE(testviewaudit.datetime) , 
SUM(ACTION=1) AS dview, 
SUM(ACTION=2) AS dstart, 
SUM(ACTION=3) AS dfinish 
FROM testviewaudit 
INNER JOIN tmtests 
ON estviewaudit.testid=tmtests.tsid WHERE DATE(testviewaudit.datetime) >= '2016-03-12' AND DATE(testviewaudit.datetime) <= '2016-03-15' 
GROUP BY testid; 
+0

虽然我同意你的评论,但它可能不是问题。我测试'选择1作为视图,2作为开始' - 它的工作。 –

+0

@PaulSpiegel你的权利。另外我想你的评论是有道理的。 – F0G

0

您查询

SELECT 
 
    testid, 
 
    testName, 
 
    DATE(testviewaudit.datetime), 
 
    SUM(action = 1) AS view, 
 
    SUM(action = 2) AS start, 
 
    SUM(action = 3) AS finish 
 
    FROM testviewaudit INNER JOIN tmtests ON estviewaudit.testid = tmtests.tsid 
 
    WHERE DATE(testviewaudit.datetime) between '2016-03-12' 
 
\t AND '2016-03-15' GROUP BY testid;