MSSQLServerに関連するクエリがあります。
情報が機密であるかどうかわからないため、詳細を曖昧にし、特定の部分を変更または削除する必要がありますが、学期にまたがるトレーニングユニットを持つ学生を検索するクエリを作成しました。レポートビルダー2.0:
DS_spanning :(メインデータセット)
SET DATEFORMAT dmy
SELECT
FIRST_NAME AS FirstName
,LAST_NAME AS LastName
,START_DATE AS StartDate
,END_DATE AS EndDate
,UNIT_TYPE AS UnitType
,TP_FULLNAME AS TrainingPost
,SEMESTER_YEAR AS SemesterYear
FROM AA_GPR_TU
WHERE TU_START_DATE < @checkdate //Checkdate returns the end date of the
AND TU_END_DATE > @checkdate // selected semester
ORDER BY TU_START_DATE
PM_checkdate :( @checkdateがリンクされているデータセット)
SET DATEFORMAT dmy
SELECT
new_semesterenddate
,new_semesterstartdate
,new_semesternumber
,new_semesteryear
,new_name
FROM
FilteredNew_rtpsemester
WHERE new_semesteryear >= 2004
ORDER BY new_semesterenddate DESC
今、これはうまく機能し、私が望む仕事をしますが、一度に選択できるのは1学期だけです。@checkdateのレポートパラメータプロパティの下にある[複数の値を許可する]チェックボックスをオンにしようとすると、複数の学期を選択してレポートを実行すると、次のエラーが発生します。
'、'の近くの構文が正しくありません。
データセット'DS_spanning'のクエリ実行に失敗しました。
レポートの処理中にエラーが発生しました。
ローカルレポートの処理中にエラーが発生しました。**
('、'の問題は、レポートに複数の値を選択すると、それらがdata1、data2、data3 ...などとして@checkdateに提供されるためです。)
パラメータの記述方法に問題がありますか、それとも複数の値に対応するようにクエリを変更する必要がありますか?
これを行うために私が考えることができる最も簡単な方法は、セクションでINステートメントを使用することです
WHERE TU_START_DATE <@checkdate AND TU_END_DATE> @checkdate
and
しかし、オペランドと組み合わせてINステートメントを使用する方法がわかりません。
アイデアはありますか?