私は中規模企業のEEO調査とレポートの更新タスクを割り当てられました。私はストアドプロシージャを使用してレポートを生成しています。すべてが良いですが、構文の問題です。要件の1つは、ユーザーがEEOジョブ・グループ番号で結果をフィルタリングすることを動的に許可することです。レポートページが読み込まれると、すべてのジョブグループが結合されたテーブルが読み込まれます。 10個のEEOジョブ・グループの1つを選択するか、またはデフォルトで、すべてのジョブ・グループ結合(フィルタリングなし)を選択できるページにDropDownListを配置しました。 DDLはポストバックを実行し、パラメータを設定します。 @intEooJobGroupID。テーブルにはDDLの中に実際には0のID値はありません。私は@intEeoJobGroupID <> 0(パラメータ> 0 <場合は効果的に別のANDステートメントを追加)SQLのWHERE句でIF/THENまたはCASEを使用
I場合(USP)クエリが1つの渡されたパラメータ@intEeoJobGroupID = 0 if文のセット、および別のものを使用したいですいくつのEEOレコードがクエリの要件を満たしているかのカウントを返したいとします。私はIF/THEN、CASEをさまざまな形式で試してみましたが、構文が正しいとは思えません。例では、私は、THEN文の最初の=に近いメッセージ「不正な構文だけでなく、ELSEキーワードを取得下回る。
任意のヒントを?
DECLARE @intEeoJobGroupID INT
SELECT
COUNT (E.intEeoID)
FROM
dbo.NewEEO AS E
WHERE
CASE WHEN @intEeoJobGroupID = 0
THEN
E.intGenderID = 1
AND E.intRaceID = 2
ELSE
E.intGenderID = 1
AND E.intRaceID = 2
AND E.intEeoJobGroupID = @intEeoJobGroupID
これはまだ動作しません。彼はCASEを使用して、実行ブロックを定義しようとしています。それだけではうまくいきません。 –
私は質問を深くチェックしませんでした。そうです、私は構文を修正していました。 – sara