我正在使用SQL Server從一個動態exec獲取多個結果作爲單個輸出中的一個表的列,現在exec讓我有多個輸出作爲不同的時間表。加入多個「exec」作爲一個輸出SQL服務器
有沒有辦法將它們合併在一起並獲得單個輸出?
這是我的代碼:
Declare @status nvarchar(255)
Declare POINTER cursor global for select distinct status from intermedio
open POINTER
fetch NEXT from POINTER into @status
while (@@FETCH_STATUS=0)
begin
exec('select distinct(
Select COUNT(*) from (
SELECT DISTINCT PKN
FROM INTERMEDIO
WHERE PIECE IN ('+'''+891''','''+75'''+') and ESTATUS = '''[email protected]+'''
group by PKN
having count(*)=2
) ser) as '[email protected]);
fetch next from POINTER into @status
end;
close POINTER;
DEALLOCATE POINTER;
編輯:試圖更好地解釋自己,再次請原諒我的英語很差。 我的表有三列
+-----------+-------+---------+
| PKN | PIECE | ESTATUS |
+-----------+-------+---------+
| Set_one | +891 | A1 |
| Set_one | +75 | A1 |
| Set_one | +45 | A1 |
| Set_two | +891 | A3 |
| Set_two | +75 | A3 |
| Set_three | +700 | B1 |
+-----------+-------+---------+
我試圖讓兼得(891,+75)的PKNs的計數和計數存在多少ESTATUS
下我輸出期待是這樣的:
+----+----+----+
| A1 | A3 | B1 |
+----+----+----+
| 1 | 1 | 0 |
+----+----+----+
但它給了我不同表上的行。
我這樣做的原因是因爲表格可能隨時有許多不同的ESTATUS,並且在不同的PKN上有許多不同的部分,結果會不斷變化,每次執行時生成的表格都會有所不同查詢。 如果問題不清楚,我很抱歉,因爲英語不是我的第一語言。
你好,你應該添加表結構,數據樣本和預期的結果。 – Horaciux
我幾乎100%確定光標在不必要的。你所做的基本上是使用循環多次獲取值,現在你想將它們合併回一張表中。當然你可以使用'INSERT INTO EXEC ...',但是你可以使用簡單的'INSERT INTO SELECT'。 – lad2025
我編輯了這個問題來添加表結構和預期的結果,謝謝Horaciux – Richard