一度に複数の値を返すことができるように、テーブル値関数を宣言しています。値は、DECLARE および Maths and Date 関数を使用して計算されます。
この機能は、「記録された日付」と、サポート システムの問題の優先度のみを受け取るように構成されています。正直なところ、次のように選択できると思いました。
SELECT SupportCall.*, dbo.GetSLAStatus(SupportCall.createDate, SupportCall.priority).* FROM SupportCall
私は実際に終わった:
SELECT SupportCall.*,
SLADays = (select SLADays from dbo.GetSLAStatus(SupportCall.createDate, SupportCall.priority)),
SLARecieved = (select SLAReceived from dbo.GetSLAStatus(SupportCall.createDate, SupportCall.priority)),
SLATarget = (select SLATarget from dbo.GetSLAStatus(SupportCall.createDate, SupportCall.priority)),
SLAHoursRemaining = (select SLAHoursRemaining from dbo.GetSLAStatus(SupportCall.createDate, SupportCall.priority))
From SupportCall
適用の可能性のある結合が表示されません (とにかく完全には理解できません)。
同じパラメーターを使用した関数呼び出しが 1 回実行されるかどうかを知っている人はいますか? クエリの実行時に多くのサブクエリと関数呼び出しが発生しない場合は、気にしません。簡潔ではないにしても、コードは実際には非常に整然としています。
大量のオーバーヘッドがある場合、この種のテーブル関数からすべての列を選択する方法を知っている人はいますか (つまり、キーがなく、同じ入力データに対するいくつかの計算のみ)。
ありがとう。
マーク