我有這樣一個存儲過程:結合兩個存儲過程,一個存儲過程得到錯誤
ALTER procedure [dbo].[IBS_PodiumSummeryCount]
@locid integer = null
as
begin
SET NOCOUNT ON;
SELECT
sum(status_receved) as Receved,
sum(status_parked) as Parked,
sum(status_requested) as Requested,
sum(status_requestedinprocess) as Requestinprocess
FROM
(SELECT
CASE WHEN (status = 0) THEN 1 ELSE 0 END AS status_receved,
CASE WHEN (status = 2) THEN 1 ELSE 0 END AS status_parked,
CASE WHEN (status = 3) THEN 1 ELSE 0 END AS status_requested,
CASE WHEN (status = 4) THEN 1 ELSE 0 END AS status_requestedinprocess
FROM
transaction_tbl
WHERE
locid = @locid AND dtime >= getdate()-1 AND status IN (0,2,3,4)) a;
SELECT
l1.StartTime, CONVERT(VARCHAR, GETDATE(), 108) AS Time
FROM
Location_tbl l1
WHERE
l1.Locid = @locid
END
我還有一個存儲過程是這樣的:
select dbo.podiumsummerytime(
convert(decimal(10,1),
avg(convert(numeric(18,2), datediff(ss, t.dtime, t.PAICdate ))))
) as Avgparkingtime,
dbo.podiumsummerytime(
convert(decimal(10,1),
avg(convert(numeric(18,2), datediff(ss, t.Paydate, t.DelDate))))
) as AvgDelivarytime,
dbo.podiumsummerytime(
convert(decimal(10,1),
avg(convert(numeric(18,2), datediff(ss, t.dtime, t.DelDate))))
) as Avgstaytime
from (select top 30 * from transaction_tbl where [email protected] and dtime >= getdate()-2 order by transactID desc) t
end
我試着寫這兩存儲過程在一個與工會,但我得到像這樣的錯誤:
所有使用UNION,INTERSECT或EXCEPT運算符組合的查詢m在目標列表中有相同數量的表達式。
我與SQL Server 2008中的工作,我怎麼能結合這兩種存儲過程轉換成一個存儲過程...
您的第一個存儲過程選擇兩個數據集 - 一個使用** 4 **,另一個使用** 2 **列輸出。第二個存儲過程選擇** 3 **列 - 所以** no **,你不能像這樣組合 - 你必須解決如何返回你的數據** **數據集 –
所以我怎麼樣加入這兩個存儲過程後可以返回一組數據嗎? – user3262364