sql >> データベース >  >> RDS >> Sqlserver

SSRS はレポートにレコードを表示しませんが、クエリは結果を返します

    推測して、多値パラメーターを渡す「方法」だと言います。個人的に SSRS を扱うときは、ビュー、テーブル関数を使用するか、SSRS が次のことをネイティブに理解できるように単に選択します:

    Where thing in (@Thing)
    

    実際には、SSMS でこれを意味します:

    Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)
    

    あなたのprocは、実際にはコンマ区切りの配列である文字列を取っていると思います。 '1,2,3,4' のような文字列配列を受け取るパラメーターを実行し、'Text' パラメーターのようなものを使用してプロシージャーをアドレス指定している場合、複数の値を指定するか、クエリから取得する必要があります。プロシージャが配列を含む文字列の値を取る場合は、パラメーターを結合します。例:dbo.test と呼ばれるプロシージャが実行され、パラメータ ID の値 1、2、4 の行が返されます。

    exec dbo.test @ids = '1,2,4'
    

    この値を使用して SSRS で proc を実行したい場合、'IDS' という複数値のパラメーターがある場合、次のように SSRS の関数で配列を手動でアセンブルする必要があります。

    =JOIN(Parameters!IDS.Value, ",")
    

    基本的に、コンマ区切り値のチェーンで複数の値を結合することにより、パラメーター「IDS」を実行するように proc に指示します。 [@IDS] 代わりに [Fx] をクリックして上記の関数を配置するように、パラメータを指定する代わりに「パラメータ」をリストする左側のペインのデータセットでこれを行います。

    このため、述語ロジックを使用してこれを処理できるため、私はビュー、選択、およびテーブル関数の大きな支持者です.



    1. Django + Postgres致命的:申し訳ありませんが、すでにクライアントが多すぎます

    2. トップ3スコア-MySQL

    3. MySQL 5.7 /8.0とMySQL5.6で繰り返し選択されるたびに、サブクエリのrand()列が再評価されました

    4. Pythonを使用したPostgreSQLデータベースでのINSERTの使用