![](/img/trans.png)
[英]Inserting the results set of SQL Dynamic Pivot Query into Temporary Table
[英]SQL Server- Insert results from dynamic query and variable into same row of a temporary table
如何將動態SQL Server查詢的結果和變量插入臨時表的同一行。
這是臨時表的格式(#temp)
create TABLE #temp (YEAR INT, ACC_AMOUNT Money, REJ_AMOUNT Money, OUT_AMOUNT Money,TOT_AMOUNT Money)
已存儲的PROC由執行
exec sp_executesql @pSQL
並將返回應進入ACC_AMOUNT,REJ_AMOUNT,OUT_AMOUNT列的值。
14569849.11 696235.49 1353464.92 16619549.52
我想為Year和SP的結果插入變量(@pACCU_YEAR),並在同一行中插入動態查詢。 這是錯誤的,但這會讓您了解我的意思。
insert into #temp (YEAR)
values (@pACCU_YEAR)
insert into #temp (ACC_AMOUNT , REJ_AMOUNT, OUT_AMOUNT,TOT_AMOUNT)
exec sp_executesql @pSQL
這將導致
YEAR ACC_AMOUNT REJ_AMOUNT OUT_AMOUNT TOT_AMOUNT
2014 NULL NULL NULL NULL
NULL 14569849.11 696235.49 1353464.92 16619549.52
我想要:
YEAR ACC_AMOUNT REJ_AMOUNT OUT_AMOUNT TOT_AMOUNT
2014 14569849.11 696235.49 1353464.92 16619549.52
Select @Year [Year]
,Acc_Amount
,other fields....
FROM #Temp
針對您在評論中提出的問題。
在運行@pSql之后使用它。 將“年份”列保留在聲明之外。
或者,在它運行之后:
update #temp
SET [Year]=@Year
@pSQL
內的代碼是什么? 為什么不在動態查詢本身中執行INSERT
declare @pSQL varchar(max);
set @pSQL = 'some sql command;
some_other_sql_command;
.......
insert into #temp (ACC_AMOUNT , REJ_AMOUNT, OUT_AMOUNT,TOT_AMOUNT)
select blah,blah1,blah2,blah3
from blah_table;';
exec sp_executesql @pSQL;
您能給我示范一個如何選擇一個不在表中的變量列的例子嗎?
使用相同的SELECT
語句
select @var1 as some_name, @var2 as some_other_name
as some_name
是可選的。 那就是給選定的字段起一個有意義的名字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.