私は、1つのパラメータallowayを持つ手続きを持っています@AssetID int
。他のテーブルのパラメータを使用してストアドプロシージャを実行します。
私は、この手順のためのパラメータとしてその値を使用し、別のテーブルから列値を選択します。
私はこのような手順で何かを保存した、テーブルが@AssetID
パラメータから「どこで」基準でフィルタリングされています。だから私は、例えば、他のプロシージャを作成する必要が
declare @inspectyear as nvarchar(max), @calc as nvarchar(max), @query as nvarchar(max);
set @inspectyear = STUFF((select distinct ',' + quotename(InspectYear) from ##t2 c
for XML path(''), type).value('.','NVARCHAR(MAX)'),1,1,'')
select @calc = ', ' + quotename(Max(InspectYear)) + ' - ' + quotename(Max(InspectYear)-2)
+ ' as Calc1, ' + quotename(Max(InspectYear)) + ' - ' + quotename(min(InspectYear))
+ ' as Calc2' from #t2;
set @query =
';with data as
(
select inspectyear,
partno, Pos, number
from #t2
unpivot
(
number
for Pos in ([Pos1], [Pos2], [Pos3], [Pos4])
) unpvt
)
select * ' + @calc + ' into ##temp
from data
pivot
(
sum(number)
for inspectyear in (' + @inspectyear + ')
) pvt
order by partno';
exec sp_executesql @query = @query;
select * from ##temp;
drop table ##temp;
:
create procedure spExecmyProc
as
begin
exec spMyProc '@AssetID' -- <-- The parameter took from other table.
go
end
@date
パラメータは、他のテーブルから取りました。
これは可能ですか?結果は1つの結果に過ぎません。
これまでのところ、これは私がやったことです。それは動作しますが、結果は「1つの結果」にはありません。
declare @AssetID int;
declare cur CURSOR FOR
select distinct AssetID from myTable
open cur
fetch next from cur into @AssetID
while @@FETCH_STATUS = 0
begin
exec mySPName @AssetID
fetch next from cur into @AssetID
end
close cur
DEALLOCATE cur
はありがとう:@AssetID
が複数ある場合は1、結果以上のものを作成します。
あなたが変数にそのテーブルから変数、店舗の値を宣言し、ヨーヨーにパラメータとして変数を渡すことができます:
AssetId = 5
のためだけに1行)とあなたはSP? –@ shree.pat18、それを行う方法がわかりません。しかし私は私の質問を編集します。 – Haminteu