1

クエリでストアド関数とストアド プロシージャを呼び出すのは初めてです。以下で行うよりも、ストアド関数をより適切に呼び出す方法を誰かが理解するのを手伝ってくれますか? コードが流れるように、より現実的で論理的な方法が必要なようです。これは少しクレイジーに思えます。

SELECT        SUM(TotalAmt) AS [Total Amount]
FROM            dbo.fDataamount('1', @startdate, @enddate, '1', '1', 'Total', 'Total', 'Total', 'Total', '1', '1', '1', '1', '1') AS fDataamount_1
WHERE        (DataID = 55)
4

1 に答える 1

0

クエリが機能していませんか? それとも、より良い書き方を探していますか。

機能しない場合は、テーブル値関数であることを確認してください。

また、その機能がどのくらいの頻度で使用されているかも調べます。私は、複数のストアド プロシージャで使用されているコードを統合して管理を容易にすることができる場合にのみ、関数を使用することを好みます。

関数がこの 1 つのストアド プロシージャでのみ使用される場合は、一時テーブルまたは CTE にデータ セットを作成し、代わりにそれを参照することを検討してください。

あなたのクエリからわかることは、基本的に、関数から返されたテーブルから列の合計を取り出していることです。なぜわざわざ関数を使うのでしょうか? そのロジックを関数から取り出して、クエリに直接配置できます。

于 2013-02-02T01:00:44.270 に答える