ブール値フィールドである "cancelled"というフィールドを含むデータセットがあります。レポートに@includecancelledというパラメータをブール値として設定します。ユーザーは、キャンセルしたレコードをレポートに含めるかどうかを制御するために、TrueまたはFalseとマークすることができます。これまで私はそれを行う方法を見つけることができませんでした。これは私が現在持っているものの基本的なアウトラインです:SSRS - 特定のレコードを含む/除外するパラメータ
SELECT TOP 10 COUNT (table1.field1) as Count_field1
,table2.fielda
,table2.fieldb
FROM
table1
INNER JOIN table2
ON table1.field1 = table2.fieldc
WHERE
table1.field2 in (@param1)
GROUP BY
table2.fielda
,table2.fieldb
ORDER BY COUNT (table1.field1) DESC
私は「キャンセル」フィールドと、ユーザが選択したパラメータに基づいてレコードを除外または含めるためのWHERE句で別のステートメントを持っているしたいと思います。だから、このようなもの:
SELECT TOP 10 COUNT (table1.field1) as Count_field1
,table2.fielda
,table2.fieldb
FROM
table1
INNER JOIN table2
ON table1.field1 = table2.fieldc
WHERE
table1.field2 in (@param1)
IF (@includecancelled = TRUE, '', ',AND table1.cancelled = FALSE')
GROUP BY
table2.fielda
,table2.fieldb
ORDER BY COUNT (table1.field1) DESC
明らかにうまくいかないが、私が望んでいるものの一般的な考えです。
(upvoted)権利を更新しました。 –
これはほとんど存在しますが、1つの問題です。 「includecancelled」をtrueとマークすると、キャンセルされた値だけでなく、すべての値が返されます。あなたのCASEのFALSE部分にはスポットがあります。しかし、TRUE部分はキャンセルされた値のみを返します。 – MSCF
上記の更新。 'TRUE'の代わりに、table1.cancelledを自分自身に設定します。 –