尝试执行我从MS ACCESS转换的查询

时间:2017-06-14 08:52:26

标签: mysql sql ms-access

我一直在寻找错误一段时间了。提前谢谢你的帮助!!

以下是错误:查询:SELECT reviewer_cases.case_number,reviewer_cases.reviewer,reviewer_cases.revision_reviewer,reviewer_cases.reviewer_revision_t ...

错误代码:1064 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在')附近使用正确的语法。)AS'Revision Review Cost' FROM reviewer_cases LEFT JOIN hr_mr ON reviewer_ca'at line 4

SELECT reviewer_cases.case_number, reviewer_cases.reviewer, 
reviewer_cases.revision_reviewer, 
reviewer_cases.reviewer_revision_time, hr_mr.mr_hourly_rate, 
hr_mr.operation_type, hr_mr.level, 
IF(hr_mr.level!='MR1',(reviewer_cases.reviewer_revision_time*
(hr_mr.mr_hourly_rate/60)),
IF(hr_mr.level='MR1','5')) AS 'Revision Review Cost'
FROM reviewer_cases LEFT JOIN hr_mr ON reviewer_cases.revision_reviewer = 
hr_mr.alias
WHERE (((reviewer_cases.revision_reviewer) IS NOT NULL) AND 
((hr_mr.operation_type)='MR')) 
OR (((reviewer_cases.revision_reviewer) IS NOT NULL) AND 
((hr_mr.operation_type) IS NULL));

review_cases table

hr_mr table

2 个答案:

答案 0 :(得分:1)

在MySQL中使用反引号来创建名称中包含空格的列

`Revision Review Cost`

不是

'Revision Review Cost'

或更好,不要在列名中使用空格

Revision_Review_Cost

你的一个IF没有"如果是假的话,那就是#34; - >添加一些东西,即使它只是NULL

答案 1 :(得分:0)

SELECT 
    reviewer_cases.case_number,
    reviewer_cases.reviewer,
    reviewer_cases.revision_reviewer,
    reviewer_cases.reviewer_revision_time,
    hr_mr.mr_hourly_rate,
    hr_mr.operation_type,
    hr_mr.level,
    IF(hr_mr.level != 'MR1',
        (reviewer_cases.reviewer_revision_time * (hr_mr.mr_hourly_rate / 60)),
        '5') AS 'Revision Review Cost'
FROM
    reviewer_cases
        LEFT JOIN
    hr_mr ON reviewer_cases.revision_reviewer = hr_mr.alias
WHERE
    1 = 1
        AND (((reviewer_cases.revision_reviewer IS NOT NULL
        AND hr_mr.operation_type) = 'MR')
        OR (reviewer_cases.revision_reviewer IS NOT NULL
        AND hr_mr.operation_type IS NULL));

尝试以上代码。

希望这会对你有所帮助。