あなたは、データ保存ツールを使用してレポート ジョブを実行しようとしています。データベース (および SQL) は、レポートを作成するためではなく、データを保存および取得するためのものです。レポートを作成するための特別なツールがあります。
データベースの設計において、実際のデータをテーブルまたは列の名前にエンコードすることは非常に不健康です。テーブル名も列名も、名前の一部 (およびその使用方法) として、従業員 ID、日付、または実際のデータのその他のビットを含むべきではありません。実際のデータは、異なるテーブルの列にあるフィールドにのみ存在する必要があります。
あなたが説明したことから、ベーステーブルには従業員、活動、日付の列が必要です。次に、任意の日に、「現在の」日のカウントが必要な場合は、次のようにクエリできます
select employee, count(activity) ct
from table_name
where activity_date = SYSDATE
group by employee
必要に応じて、出力に「activity_date」列を含めることもできます。これにより、レポートが実行された日付が示されます。
「date」の列名は「activity_date」であると想定していることに注意してください。また、出力では、列の別名に「count」ではなく「ct」を使用しました。DATE と COUNT は、SYSTIME などの予約語であり、テーブルまたは列の名前として使用しないでください。これらのエイリアスを SQL の他の場所で参照する必要がない限り、それらをエイリアスとして使用できますが、それでも非常に悪い考えです。列を (名前または別名で) 参照する必要があり、その名前または別名が SYSDATE であるとします。このような where 句は何を意味するのでしょうか?
where sysdate = sysdate
問題が見えますか?
また、あなたの質問からはわかりませんが、これらのレポートをデータベースに保存することを考えていましたか? 何のために?クエリを 1 つだけ保存し、必要に応じて実行する (そして、カウントが必要な "activity_date" を入力パラメーターにする) ことをお勧めします。これにより、将来の任意の日付のクエリをいつでも実行できます。ベーステーブルが適切に維持されている限り、実際の日報をデータベースに格納する必要はありません。
幸運を!