私のストアド プロシージャは 1 つのパラメーターを受け取り、単一の値を返します。私の要件は、 company id を持つテーブルのすべての行にストアド プロシージャを呼び出すことです。私はこれを試しましたが、うまくいきません
SELECT CompanyID,CompanyName,EmailID,'Exec Usp_GetCount'
+CONVERT(varchar(256),companyID) 'Employees' from Tbl_Company
ありがとう
私のストアド プロシージャは 1 つのパラメーターを受け取り、単一の値を返します。私の要件は、 company id を持つテーブルのすべての行にストアド プロシージャを呼び出すことです。私はこれを試しましたが、うまくいきません
SELECT CompanyID,CompanyName,EmailID,'Exec Usp_GetCount'
+CONVERT(varchar(256),companyID) 'Employees' from Tbl_Company
ありがとう
これを試してみてください -
SP の場合:
DECLARE @temp TABLE
(
CompanyID INT
, Cnt INT
)
DECLARE @CompanyID INT
DECLARE cur CURSOR FAST_FORWARD READ_ONLY FOR
SELECT DISTINCT CompanyID
FROM dbo.Tbl_Company
OPEN cur
FETCH NEXT FROM cur INTO @CompanyID
WHILE @@FETCH_STATUS = 0 BEGIN
DECLARE @Result INT
EXEC @Result = dbo.Usp_GetCount CONVERT(VARCHAR(256), @CompanyID)
INSERT INTO @temp (CompanyID, Cnt)
SELECT @CompanyID, @Result
FETCH NEXT FROM cur INTO @CompanyID
END
CLOSE cur
DEALLOCATE cur
SELECT
c.CompanyID
, c.CompanyName
, c.EmailID
, Employees = t.Cnt
FROM dbo.Tbl_Company c
JOIN @temp t ON t.CompanyID = c.CompanyID
スカラー関数の場合:
SELECT
c.CompanyID
, c.CompanyName
, c.EmailID
, Employees = dbo.GetCount(c.CompanyID)
FROM dbo.Tbl_Company c