我正嘗試通過將多個查詢合併到一個結果集中來爲Crystal Reports編寫存儲過程(Crystal不支持在一個報告中使用多個結果)。如何正確SELECT INTO @TempTable多次返回單個結果集?
我試圖從兩個表中結合列的結果集。
在SP中,我聲明@temptable和列(因爲我查詢的兩個表有不同的列)。
DECLARE @TEMPNEWBILLING TABLE
(
ACCOUNT DECIMAL null,
CLIENT NVARCHAR null,
TIMESTAMP INT null,
BILLING DECIMAL null,
CALLKIND INT null,
HITK1 DECIMAL null,
HITK2 DECIMAL null,
HIDISC DECIMAL null,
HITALK DECIMAL null,
HIPTCH DECIMAL null,
HICONF DECIMAL null,
HIHOLD DECIMAL null,
PTCH DECIMAL null,
SUPERTIME DECIMAL null
)
然後我SELECT
兩個表INTO
臨時表:
SELECT Account, Client, Timestamp, Billing, CallKind, HiTk1, HiTk2, HiDisc, HiTalk, HiPtch, HiConf, HiHold, Ptch
INTO TEMPNEWBILLING
FROM
mCallEnd
WHERE billing = cast(@BILLINGNUMBER as decimal)
AND Timestamp > @STARTITIME
AND Timestamp < @ENDITIME
AND CallKind in (0,1,2,3,4,16)
SELECT
Billing, SuperTime
INTO TEMPNEWBILLING
FROM
mClientMaint
WHERE billing = cast(@BILLINGNUMBER as decimal)
AND Timestamp > @STARTITIME
AND Timestamp < @ENDITIME
最後,我剛剛得到從臨時表中的所有數據。
SELECT * FROM @TEMPNEWBILLING
不幸的是,事情錯了,因爲當我運行的SP,我得到一個錯誤,
中已存在的數據庫名爲「TEMPNEWBILLING」的對象。
我檢查過它,它似乎是第一個查詢正在運行,但錯誤被拋出在第二個Select Into。我必須這樣做是錯誤的,因爲如果我使用#表或@表(即刪除表格與創建表格),我會得到相同的錯誤。
用兩個查詢的結果填充臨時表的前景根本不可能嗎?我是否使用錯誤的工具來完成這項工作?