-1

前兆:ストアド プロシージャを使用する必要があり、SQL Server 2000 を使用しています。Reporting Services が適切に使用できるように、テーブルを吐き出す必要もあります。ただし、データの取得に役立つ任意のデータベース オブジェクトを作成できます。

だから、これが私の選択文の例です(私が実際に使用しているものと同じように見えるようにしたいと思っています)

SELECT     
    Store.Store_ID, 
    Store.Store_Description, 
    Salaries.Income, 
    Salaries.Tax_Rate, 
    Managers.Manager_Name, 
    Employees.Employee_ID

FROM         
    Store INNER JOIN
    Managers ON Managers.Store_ID = Store.Store_ID INNER JOIN
    Employees ON Managers.Manager_ID = Employees.Manager_ID INNER JOIN
    Salaries ON Employees.Salary_Type_ID = Salaries.Salary_Type_ID 
WHERE (Store.Store_ID = 20561) 
ORDER BY Employee_ID

EDIT :プロシージャは単一の値を返すため、II がやりたいことは次のとおりです。

SELECT     
    Store.Store_ID, 
    Store.Store_Description, 
    Salaries.Income, 
    Salaries.Tax_Rate, 
    Managers.Manager_Name, 
    Employees.Employee_ID,
    Exec proc_Get_Emplyee_estimation_Costs Employee_ID    
FROM         
    Store INNER JOIN
    Managers ON Managers.Store_ID = Store.Store_ID INNER JOIN
    Employees ON Managers.Manager_ID = Employees.Manager_ID INNER JOIN
    Salaries ON Employees.Salary_Type_ID = Salaries.Salary_Type_ID 
WHERE (Store.Store_ID = 20561) 
ORDER BY Employee_ID

明らかにそれができないことはわかっていますが、従業員番号を使用して各行で手順を使用できるようにする必要があります。どうすればいいのかわかりません。

プロシージャで select ステートメントの結果を使用できる関数を作成し、それをテーブルに追加して、そのテーブルを Reporting Services に返すことはできますか?

4

2 に答える 2

1

ストアド プロシージャの代わりにユーザー定義関数を使用することをお勧めします。以下に示すように、select ステートメントで UDF を使用して、目的の値を計算して返すことができます。

SELECT     
    Store.Store_ID, 
    Store.Store_Description, 
    Salaries.Income, 
    Salaries.Tax_Rate, 
    Managers.Manager_Name, 
    Employees.Employee_ID,
    udf_Get_Emplyee_estimation_Costs(Employee_ID) AS EstimationCost
FROM         
    Store INNER JOIN
    Managers ON Managers.Store_ID = Store.Store_ID INNER JOIN
    Employees ON Managers.Manager_ID = Employees.Manager_ID INNER JOIN
    Salaries ON Employees.Salary_Type_ID = Salaries.Salary_Type_ID 
WHERE (Store.Store_ID = 20561) 
ORDER BY Employee_ID

ユーザー定義関数:

CREATE FUNCTION udf_Get_Emplyee_estimation_Costs
(
    Employee_ID INT
)
RETURNS DOUBLE 
AS
RETURN 
(
    SELECT EstimationVal FROM SomeTable
)
于 2012-05-25T16:42:45.087 に答える
0

関数を使用して値を返さない理由は、select ステートメントで戻り値を使用できます

http://msdn.microsoft.com/en-us/library/aa258261(v=sql.80).aspxを試し てください

于 2012-05-25T16:42:10.967 に答える