-2

次の 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...

4

1 に答える 1

1

サブクエリに from が必要ですが、WHERE のスペルが間違っています。

編集:エイリアスを追加

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) a where "TrainingMatrix".payroll='40612010' ;"
                                                                                             ^ ^^^^^
于 2013-11-10T11:39:29.753 に答える