データベース内のSQLストアドプロシージャに基づいて(Crystal Reports XIで)レポートを作成しています。クエリはいくつかのパラメータを受け入れ、指定された日付範囲内のレコードを返します。パラメータが渡された場合、それらは返されるレコードを決定するために使用されます。1つ以上のパラメーターが渡されない場合、そのフィールドは、返されるレコードのタイプを制限するために使用されません。少し複雑なので、WHERE句を次に示します。
WHERE ((Date > @start_date) AND (Date < @end_date))
AND (@EmployeeID IS NULL OR emp_id = @EmployeeID)
AND (@ClientID IS NULL OR client_id = @ClientID)
AND (@ProjectID IS NULL OR project_id = @ProjectID)
AND (@Group IS NULL OR group = @Group)
さて、問題について:
クエリ(およびレポート)は、2000年から2005年の範囲内の古いデータに対して美しく機能します。ただし、WHERE句は、最近の数年間はデータを適切にフィルタリングしていません。パラメータ@GroupがNULLである(つまり、渡されない)レコードのみを返します。
ヒント、ヒント、またはリードは大歓迎です!