为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:Linux
【CPU】:8
【问题描述】*:
SQL语法错误,如下图:
该如何调整?
SELECT a1.ID AS ID,
a1.SXR AS SXR,
a1.TITLE AS TITLE,
a1.PXRQ AS PXRQ,
a1.pxsj AS pxsj,
a1.PXDD AS PXDD,
a1.ZZR AS ZZR,
a1.KHFS AS KHFS,
a1.PXFS AS PXFS,
a1.SKR AS SKR,
a1.SFKH AS SFKH,
a1.KHR AS KHR,
a1.PXNR AS PXNR,
a1.SFTX AS SFTX,
a1.NODENAME AS NODENAME,
a1.passPercent,
a1.intimePercent,
a1.bbh
FROM
(
SELECT
t2.ID AS ID,
t2.SXR AS SXR,
t2.TITLE AS TITLE,
t2.PXRQ AS PXRQ,
t2.pxsj AS pxsj,
t2.PXDD AS PXDD,
t2.ZZR AS ZZR,
t2.KHFS AS KHFS,
t2.PXFS AS PXFS,
t2.SKR AS SKR,
t2.SFKH AS SFKH,
t2.KHR AS KHR,
t2.PXNR AS PXNR,
t2.SFTX AS SFTX,
t3.NODENAME AS NODENAME,
CASE
WHEN t2.passPercent IS NULL THEN
'0%' ELSE t2.passPercent
END AS passPercent,
CASE
WHEN t2.intimePercent IS NULL THEN
'0%' ELSE t2.intimePercent
END AS intimePercent,
t3.bbh as bbh
FROM
(
SELECT
jl.ID AS ID,
jl.SXR AS SXR,
jl.TITLE AS TITLE,
concat_ws( ' - ', substring( jl.pxkssj, 1, 10 ), substring( jl.pxjssj, 1, 10 ) ) AS PXRQ,
jl.pxkssj AS pxsj,
jl.PXDD AS PXDD,
jl.ZZR AS ZZR,
jl.KHFS AS KHFS,
jl.PXFS AS PXFS,
jl.SKR AS SKR,
jl.SFKH AS SFKH,
jl.KHR AS KHR,
jl.PXNR AS PXNR,
jl.SFTX AS SFTX,
( ( LENGTH( jl.sxr ) - LENGTH( REPLACE ( jl.sxr, ';', '' ) ) ) + 1 ) AS abc,
concat(
round(
round(
hg.hgrs / ( ( LENGTH( jl.sxr ) - LENGTH( REPLACE ( jl.sxr, ';', '' ) ) ) + 1 ),
2
) * 100,
0
),
'%'
) AS passPercent,
concat(
round(
round(
js.jsrs / ( ( LENGTH( jl.sxr ) - LENGTH( REPLACE ( jl.sxr, ';', '' ) ) ) + 1 ),
2
) * 100,
0
),
'%'
) AS intimePercent
FROM
T_APP_PXGL_PXJL jl
LEFT JOIN -- 考试合格人数
(
SELECT
count( 1 ) AS hgrs,
ry.PARENTID AS pxjlid
FROM
t_app_pxgl_ncxry ry
WHERE
CAST( khjg AS SIGNED ) >= CAST( hgfs AS SIGNED )
AND hgfs != ""
GROUP BY
ry.PARENTID
) hg ON hg.pxjlid = jl.id
LEFT JOIN -- 培训及时人数
(
SELECT
count( 1 ) AS jsrs,
ry.PARENTID AS pxjlid
FROM
tr_app_pxkc gx,
t_app_pxgl_ncxry ry
WHERE
ry.PARENTID = gx.parentid
AND ry.submittime != ""
AND ry.submittime <= gx.ydsx
GROUP BY
ry.PARENTID
) js ON js.pxjlid = jl.id
) t2,
(
SELECT DISTINCT
D.ID,
A.ID AS WORKID,
A.CREATED,
E.NODENAME,
F.bbh
FROM
t_app_pxgl_pxjl D
LEFT JOIN TDR_HORIZON_PAGE_DATA B ON B.FORM_DATA_ID = D.ID
LEFT JOIN TWR_HZ_INSTANCE C ON C.DATAID = B.DATA_ID
LEFT JOIN (SELECT * FROM TW_HZ_INSTANCE WHERE FLOWID = 'FQPX' ) A ON A.ID = C.WORKID
LEFT JOIN TW_HZ_TRACK E ON A.ID = E.WORKID
left join t_app_pxkcgl_pxkc F on F.id = D.kcid
) t3
WHERE
t2.id = t3.id
and LOCATE('hz{userid}',t2.sxr) > 0
UNION ALL
SELECT
wb.id,
ncxry,
pxzt,
concat_ws( ' - ', pxsjap, enddate ) AS pxsjap,
pxsjap AS pxsj,
pxdd,
skrzzdw AS zzr,
'' AS khfs,
'外部线下培训' AS pxfs,
skrzzdw AS skr,
'' AS sfkh,
'' AS khr,
pxzt,
'' AS sftx,
t5.nodename,
'N/A' AS passPercent,
'N/A' AS intimePercent,
'' as bbh
FROM
wbpx wb,
(
SELECT DISTINCT
D.ID,
A.ID AS WORKID,
A.CREATED,
E.NODENAME
FROM
wbpx D
LEFT JOIN TDR_HORIZON_PAGE_DATA B ON B.FORM_DATA_ID = D.ID
LEFT JOIN TWR_HZ_INSTANCE C ON C.DATAID = B.DATA_ID
LEFT JOIN (SELECT * FROM TW_HZ_INSTANCE WHERE FLOWID = 'WBPX' ) A ON A.ID = C.WORKID
LEFT JOIN TW_HZ_TRACK E ON A.ID = E.WORKID
) t5
WHERE
wb.id = t5.id
and LOCATE('hz{userid}',wb.ncxry) > 0
) a1
order by a1.pxsj desc
看着不像这快报错,语法肯定没问题,看下能否把语句精简下,精确定位报错语句