日期范围为的PostgreSQL更新
我有一句话很有效,但它是不受约束的,因为它总结了整个专栏,我想介绍日期范围,但我得到了一个错误 这就是有效的方法日期范围为的PostgreSQL更新,sql,postgresql,common-table-expression,Sql,Postgresql,Common Table Expression,我有一句话很有效,但它是不受约束的,因为它总结了整个专栏,我想介绍日期范围,但我得到了一个错误 这就是有效的方法 UPDATE payroll_employee e SET hours = l.total FROM (SELECT employee, SUM(end_date - start_date) AS total FROM payroll_timelog GROUP BY employee) l WHERE e.id = l.employee 我想介绍一个日期过
UPDATE payroll_employee e
SET hours = l.total
FROM (SELECT employee, SUM(end_date - start_date) AS total
FROM payroll_timelog
GROUP BY employee) l
WHERE e.id = l.employee
我想介绍一个日期过滤器。
然后我尝试了这个CTE
WITH cte AS (
SELECT employee_id, end_date SUM(end_date - start_date) AS total
FROM payroll_timelog
WHERE employee_id = 1, AND end_date > 2020-09-01
)
UPDATE payroll_employee e
SET hours = total
FROM cte
WHERE e.id = 1;
已尝试将日期设置为2020-09-01::日期、2020-09-01::时间戳等,但仍然无效。任何帮助都将不胜感激。我想您只是有语法错误:
WITH cte AS (
SELECT employee_id, SUM(end_date - start_date) AS total
FROM payroll_timelog
WHERE employee_id = 1 AND end_date > '2020-09-01'
GROUP BY employee_id
)
UPDATE payroll_employee e
SET hours = cte.total
FROM cte
WHERE e.id = 1;
“行不通”是什么意思?添加输入参数和预期结果。
和
前面有一个逗号,因此查询不会解析。get:语法错误位于或接近“(“第2行:选择员工id,结束日期和(结束日期-开始日期。。。