为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:linux
【CPU】:
【问题描述】*:
同条SQL,在不同版本的DM8数据库上执行不一样,SQL如下
SELECT
DISTINCT u.sfzh
FROM
t_user u
JOIN t_user_check uc ON u.sfzh = uc.sfzh
LEFT JOIN t_user_check uc2 ON u.sfzh = uc2.sfzh AND uc2.result1 = 1 AND uc2.year_str = YEAR(CURRENT_DATE) - 4
WHERE
uc.result1 = 1
AND uc.year_str > YEAR(CURRENT_DATE) - 4
AND uc.year_str < YEAR(CURRENT_DATE)
GROUP BY u.sfzh
HAVING COUNT(uc.id) = 3
在一台服务器正常,另一台提示“字符串转换出错”
year_str 字段为varchar
尝试将出错服务器上SQL进行改写如用CAST,convert都提示“字符串转换出错”
有没有大佬遇到过类似的
遇到了相似的问题,这个问题解决了吗?可以不改代码解决么?
WHERE
AND uc.result = 1
AND uc.year_str > YEAR(CURRENT_DATE) - 4
这里第一个and去掉,语法问题