我使用以下 SQL 语句投影了几列:
SELECT DISTINCT ON ("TrainingMatrix".payroll, "TrainingName", "Institute")"gendata"."Employee Name","gendata"."Position", "gendata"."Department", "TrainingMatrix".* "
"FROM "TrainingMatrix" "
"JOIN "gendata" ON "TrainingMatrix".payroll = "gendata".payroll "
"ORDER BY payroll, "TrainingName", "Institute" ,"TrainingDate" DESC NULLS LAST
我想根据"TrainingMatrix".payroll
值过滤结果。我尝试了以下方法,但它显示错误:
SELECT * (SELECT DISTINCT ON ("TrainingMatrix".payroll, "TrainingName", "Institute")"gendata"."Employee Name","gendata"."Position", "gendata"."Department", "TrainingMatrix".* "
"FROM "TrainingMatrix" "
"JOIN "gendata" ON "TrainingMatrix".payroll = "gendata".payroll "
"ORDER BY payroll, "TrainingName", "Institute" ,"TrainingDate" DESC NULLS LAST) WEHRE "TrainingMatrix".payroll='40612010' ;"
我收到了这个错误:
ERROR: 42601: syntax error at or near "("
我正在使用 PostgreSQL。
编辑:
SELECT * from (SELECT DISTINCT ON ("TrainingMatrix".payroll, "TrainingName", "Institute")"gendata"."Employee Name","gendata"."Position", "gendata"."Department", "TrainingMatrix".*
FROM "TrainingMatrix"
JOIN "gendata" ON "TrainingMatrix".payroll = "gendata".payroll
ORDER BY payroll, "TrainingName", "Institute" ,"TrainingDate" DESC NULLS LAST) where "TrainingMatrix".payroll='40612010' ;
现在我得到了:
错误:FROM 中的子查询必须有别名 LINE 1: SELECT * from (SELECT DISTINCT ON ("TrainingMatrix".payroll...