JaspersoftのiReportを使用して、MaintenanceAssistantCMMSデータベースからデータをプルするレポートを作成しています。DBはローカルホスト上にあり、テーブルや列を作成していません。MACMMSがそれを処理します。レポートに配置するためにデータをプルしたいだけです。
これが私のコードです:
SELECT *
FROM "tblworkordertask"
WHERE "dbltimespenthours" > 0
AND "dtmdatecompleted" BETWEEN $P{DATE_FROM} AND $P{DATE_TO}
GROUP BY "intworkorderid"
と私のエラー:
原因:java.sql.SQLSyntaxErrorException:列参照'tblWorkOrderTask.id'が無効であるか、無効な式の一部です。GROUP BYを含むSELECTリストの場合、選択されている列と式には、有効なグループ化式と有効な集計式のみを含めることができます。
そのような列がないため、エラーが「tblWorkOrderTask.id」を参照している理由がわかりません。また、その列を要求しませんでした。
group by句を削除すると正常に機能しますが、ご想像のとおり、同じWorkOrderIDで複数の結果が得られます。この列でグループ化して、結果を数えたいと思います。SELECT DISTINCTを使用しようとしましたが、選択されていない列についてエラーが発生します。