0

私はまだ SQL にかなり慣れていますが、質問があります。

緯度/経度に基づいてアカウントを検索するレポート サービスを使用してルックアップを作成しています。私の質問は、ストアド プロシージャから結果を取得して、次の sp で変数を初期化するにはどうすればよいですか?

例:
-- この SP は、郵便番号に基づいて minlat、maxlat、minlong、maxlong を取得します。

EXEC SERVER.DATABASE.dbo.GetLatLongApprox @Zip

-- 次に、レポート サービスで使用する変数を宣言しています。

DECLARE @MaxLat AS float
DECLARE @MinLat AS float
DECLARE @MaxLong AS float
DECLARE @MinLong AS float

-- ここで、最初のストアド プロシージャの結果に基づいて値を動的に設定したいと考えています。

SET @MaxLat = ?
SET @MinLat = ?
SET @MaxLong = ?
SET @MinLong = ?

これらはすべて、レポート サービスで使用する 1 つのストアド プロシージャに格納されます。うまくいけば、これは理にかなっています。繰り返しますが、私は緑色で、まだSQLが話されていません。

どんな助けでも大歓迎です。

4

4 に答える 4

2

Books On Line で OUTPUT パラメータを検索する

ここに例があります

CREATE PROCEDURE TestProc
       @employeeID INT,
       @managerID INT OUTPUT
    AS
    BEGIN
       SELECT @managerID =2

    END
    Go


    declare @employeeID int, @managerID int
    select @employeeID = 1


    exec TestProc @employeeID,@managerID output

    select  @employeeID,@managerID
于 2009-02-23T16:59:31.967 に答える
1

その中で OUTPUT パラメータを使用できると思います。

EXEC SERVER.DATABASE.dbo.GetLatLongApprox @Zip、@MaxLong OUTPUT、...、@MinLong OUTPUT

@MaxLong を N'@MaxLong' として選択 ... @MinLong を N'@MinLong' として選択

それはあなたが探しているものですか?

于 2009-02-23T16:58:01.393 に答える
1

このジョブを実行するには、出力パラメーターを使用する必要があります。このような:

CREATE PROCEDURE XPTO_Procedure

@intInput int,
@intOutput int OUTPUT

AS
set @intOutput = @intInput + 1 

go

Call it like this:

declare @intResult int
exec _4P_test 3 ,@intResult OUT
select @intResult

それは素晴らしくて簡単です:D

于 2009-02-23T17:01:05.553 に答える
0

ストアドプロシージャで

EXEC dbo.GetLatLongApprox @Zip

返された結果セットに対して変数を設定するだけです。

SELECT
@MinLat = min_lat,
@MaxLat = max_lat,
@MinLong = min_long,
@MaxLong = max_long
FROM
my_resultset

EXEC dbo.MyReportingServiceStoredProcedure @MinLat, @MaxLat, @MinLong, @MaxLong

次に、これらをパラメーターとして Reporting Services ストアド プロシージャに渡します。私があなたを正しく理解しており、これをすべて 1 つのストアド プロシージャ内で行っている場合です。

于 2009-02-23T17:05:52.997 に答える