2 つのデータセットを持つ SSRS のレポートがあります。1 つのデータセットNegativeNumbers
は、メイン データセットで使用される 0 個以上の値を含む 1 つの列を返します。
問題は、@NegativeNumbers
渡す値がない場合に発生します。エラーが発生します。
NegativeNumbers パラメーターに値がありません。
NegativeNumbers クエリは常に値を返すとは限らない (これは正しい) ため、値がない場合でもメイン データセットを正しく実行する必要があります。「空の値を許可する」にチェックを入れるとうまくいくと思いましたが、違います。
パラメーター@NegativeNumbers
は非表示になっているため、空の値と複数の値を許可するようにチェックしていても、null 値は取りません。デフォルト値はNegativeNumbers
データセット値に設定されます。隠されたものは利用可能な値が好きではありません。
NegativeNumbers データセットの基本コードは次のとおりです。
select colName
where colName < 0 -- returns all values less than 0 as values
-- for parameter "NegativeNumbers"
メイン データセットの基本的なコードは次のとおりです。
select bunchOfColumns
from mytable
where aColumnName in (@NegativeNumbers)
-- this returns only the values where the column value is a match for one
-- of the values returned by the @NegativeNumbers dataset
実際のクエリはこれよりもはるかに複雑で、union all ステートメントが含まれていますが、これは私がやろうとしていることを示しています。最初のクエリで値が返されない場合、2 番目のクエリでエラーが発生します。データセットが空で、「空の値を許可する」がチェックin ('')
されている場合、値を単に「」に置き換えないのはなぜですか?@NegativeNumbers
私はグーグルを精査しました。運がない。さまざまなパラメーター オプションを試してみました。運がない。レポートを作り直しました。そして何もありません。私はいつもこのエラーを受け取りますが、それを修正する方法がわかりません。
*私のコーディングの存在の意味を疑問視しながら、机の上で頭を打ちました。
*はぁ
これはいくつかの高度な SSRS のものであり、私は説明するのが得意ではないので、私がやろうとしていることを明確にするのに役立つ質問がある場合は、質問してください。