0
私は2つのテーブル、連絡先、アカウントを持っています。私はここで、同じ親に関連付けられたレコード数を取得する一般的な関数を作成しようとしています私が持っているものです。SQL Serverの兄弟レコード数
CREATE FUNCTION [dbo].[SiblingCount](
@IDValue Integer
)
RETURNS Integer AS
BEGIN
DECLARE @Result integer
Select @Result = Count(a.AccountID)
from Account a
where a.Status <> 'Active' and
a.ContactID = (select a2.ContactID
from Account a2 where a2.Accounnts = @IDValue)
RETURN @Result
END
GO
はそれを行うには良い方法はありますか?
おかげで、私は数を返すように関数として使用していますし、メッセージ444、レベル16、状態2、プロシージャSiblingCount、行8を取得します。 関数内に含まれるSelectステートメントは、クライアントにデータを返すことはできません。 –
スカラーのint値を返す関数が本当に必要な場合は、既に行ったことを実行する必要があります。変数を宣言し、SELECT @ Result = Count(*)... WHERE c.ContactID = @ IDValue'この場合は 'GROUP BY'を手放すことができます)、変数を返します。しかし、これは最善のアプローチであることは間違いありません...非常に手続き的な臭いが... – Shnugo