と同じテーブルから2つのフィールドが参加しますドロップダウンリストはSubjectIds
)、ストアドプロシージャを呼び出します。は、私はこのような2台を持っているパラメータ
ストアドプロシージャは、このようなグリッド内のデータを表示するために使用されます。
+-------------+------------------------------+--------------------------------+
| MeetingDate | Number of important subjects | Number of unimportant subjects |
+-------------+------------------------------+--------------------------------+
| 01.05.2016 | 5 | 3 |
+-------------+------------------------------+--------------------------------+
何の被写体が選択されていない場合、彼らは任意の割り当てられた主題を持っていない場合でも、すべての可能な会議の日付が(示されなければならまだ)。サブジェクトが選択された場合、このサブジェクトを重要または重要でないサブジェクトとして持つミーティングのみが表示されます。
例:
「テスト」という科目を選択しました。この件名は、2006年4月5日の会議では重要で、11.05.2016の会議では重要ではありません。
+-------------+------------------------------+--------------------------------+
| MeetingDate | Number of important subjects | Number of unimportant subjects |
+-------------+------------------------------+--------------------------------+
| 04.05.2016 | 6 | 2 |
| 11.05.2016 | 2 | 4 |
+-------------+------------------------------+--------------------------------+
この私のストアドプロシージャで、このコードで作業されています:
SELECT meeting.MeetingId,
meeting.MeetingDate,
(SELECT COUNT(MeetingIdMS1) FROM dbo.tabSubject WHERE MeetingIdImportant = meeting.MeetingId) AS NumberOfImportantSubjects,
(SELECT COUNT(MeetingIdMS8) FROM dbo.tabSubject WHERE MeetingIdUnimportant = meeting.MeetingId) AS NumberOfUnimportantSubjects
FROM dbo.tabMeeting meeting
INNER JOIN
(
SELECT MeetingIdImportant MeetingId
FROM dbo.tabSubject
WHERE (@SubjectId IS NOT NULL AND SubjectId = @SubjectId)
UNION ALL
SELECT MeetingIdUnimportant
FROM dbo.tabSubject
WHERE (@SubjectId IS NOT NULL AND SubjectId = @SubjectId)
) t ON
CASE
WHEN @SubjectId IS NOT NULL THEN t.MeetingId
ELSE meeting.MeetingId
END = meeting.MeetingId
しかし、私は、任意の対象を選んだしていないとき、何もデータが示されていない。今、私はこのような結果が予想されます私は何が欠けているのですか?
@SubjectId
@diiN_場合はテーブルTにデータがありません – Eric