为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:win10
【CPU】:
【问题描述】*:列[now]附近出现错误[-2007]:
语法分析出错
sql语句: SELECT COUNT(1) FROM ( SELECT
pdt.CODE,
pdt.company_id as companyId,
pdt.office_id as officeId,
pdt.create_by as createBy,
pdt.create_date as createDate,
pdt.is_delete as isDelete,
pdt.update_by as updateBy,
pdt.update_date as updateDate,
pdt.id as taskId,
pdt.NAME as taskName,
null as projectId,
null as projectName,
FLOOR( ppdt.complete_percent) oldcompletePercent,
FLOOR( ppdt.complete_percent) completePercent,
ppdt.STATUS as taskStatus,
pdt.task_type as taskType,
'1' as type,
pdt.description,
pdt.create_date as planBeginDate,
pdt.close_date as planEndDate,
if(datediff(now(),pdt.close_date) < 0,0,datediff(now(),pdt.close_date)) as delayDay,
pdt.person_liable_ids as personLiableIds,
pdt.person_liable_names as personLiableNames,
su.name as createName
FROM
pm_person_daily_task ppdt
LEFT JOIN pm_daily_task pdt ON ppdt.daily_task_id = pdt.id
LEFT JOIN sys_user su on ppdt.create_by = su.id
WHERE
ppdt.is_delete = 0
AND pdt.is_delete = 0
AND pdt.status = '1'
AND ppdt.status != '1'
AND ppdt.complete_percent != 100
AND date_format( pdt.create_date, '%Y-%m-%d' ) <= date_format( ?, '%Y-%m-%d' )
AND find_in_set(
'1'
, ppdt.person_liable_ids)
AND pdt.id NOT IN(
SELECT ttd.task_id
FROM ts_time_day_info ttd
WHERE
ttd.is_delete = 0
AND ttd.create_by = '1'
AND date_format(ttd.time_sheet_date, '%Y-%m-%d') = date_format('1', '%Y-%m-%d')
)
union all
SELECT
ppp.CODE,
ppp.company_id as companyId,
ppp.office_id as officeId,
ppp.create_by as createBy,
ppp.create_date as createDate,
ppp.is_delete as isDelete,
ppp.update_by as updateBy,
ppp.update_date as updateDate,
ppp.id as taskId,
ppp.NAME as taskName,
ppp.project_id as projectId,
pp.NAME as projectName,
FLOOR( ppp.complete_percent) oldcompletePercent,
FLOOR( ppp.complete_percent) completePercent,
ppp.status as taskStatus,
ppp.type as taskType,
'0' as type,
ppp.description,
ppp.plan_begin_date as planBeginDate,
ppp.plan_end_date as planEndDate,
if(datediff(now(),ppp.plan_end_date) < 0,0,datediff(now(),ppp.plan_end_date)) as delayDay,
ppp.person_liable_ids as personLiableIds,
ppp.person_liable_names as personLiableNames,
su.name as createName
FROM
pm_project_plan ppp
LEFT JOIN pm_projectinfo pp ON ppp.project_id = pp.id
LEFT JOIN sys_user su ON ppp.create_by = su.id
WHERE
ppp.is_delete = 0
AND ppp.is_leaf_node = 1
AND ppp.status != '1'
AND ppp.complete_percent != 100
AND pp.status in (1,8,9)
AND date_format( ppp.plan_begin_date, '%Y-%m-%d' ) <= date_format( ?, '%Y-%m-%d' )
and ppp.person_liable_ids in
(
'1'
)
AND ppp.id NOT IN(
SELECT ttd.task_id
FROM ts_time_day_info ttd
WHERE
ttd.is_delete = 0
AND ttd.create_by = ?
AND date_format(ttd.time_sheet_date, '%Y-%m-%d') = date_format(?, '%Y-%m-%d')
) ) TOTAL
第22行,datediff函数用法不对
函数 DATEDIFF/BIGDATEDIFF
语法:DATEDIFF(datepart,date1,date2)
功能:返回跨两个指定日期的日期和时间边界数。
请参考DM8_SQL语言使用手册