ALTER PROCEDURE [dbo].[MyStoredProcedure1]
@YearToGet int
AS
Select Division, SDESCR,
DYYYY,
Sum(APRICE) ASofSales,
Sum(PARTY) AS ASofPAX,
Sum(NetAmount) ASofNetSales,
Sum(InsAmount) ASofInsSales,
Sum(CancelRevenue) ASofCXSales,
Sum(OtherAmount) ASofOtherSales,
Sum(CXVALUE) ASofCXValue
From dbo.B101BookingsDetails
Where Booked <= CONVERT(int,DateAdd(year, @YearToGet - Year(getdate()),
DateAdd(day, DateDiff(day, 1, getdate()), 0))) and
(DYYYY = @YearToGet)
Group By SDESCR, DYYYY, Division
Having (DYYYY = @YearToGet)
Order By Division, SDESCR, DYYYY
union all
SELECT
DIVISION,
SDESCR,
DYYYY,
SUM(APRICE) AS YESales,
SUM(PARTY) AS YEPAX,
SUM(NetAmount) AS YENetSales,
SUM(InsAmount) AS YEInsSales,
SUM(CancelRevenue) AS YECXSales,
SUM(OtherAmount) AS YEOtherSales,
SUM(CXVALUE) AS YECXValue
FROM dbo.B101BookingsDetails
Where ([email protected])
GROUP BY SDESCR, DYYYY, DIVISION
ORDER BY DIVISION, SDESCR, DYYYY
我得到的錯誤是UNION ALL不會在存儲過程中的工作
消息156,級別15,狀態1,過程 MyStoredProcedure1 36行錯誤 語法附近關鍵字工會」。
但在這裏我的目標是用戶輸入一個年份,例如2009年,我的第一個查詢將獲得在2009年做出它是昨天2009/12/23同一日期的所有銷售,而第二個查詢2009年獲得總額達12月31日2009年
我想列並排不是在一列
而你得到的**錯誤信息是??你的問題是? – 2010-12-23 17:21:36
當你試圖用`UNION ALL`將它們放在一起時,我不認爲你可以在你的部分`SELECT`上使用`ORDER BY`;嘗試從第一個`SELECT`中刪除ORDER BY` - 它工作嗎? – 2010-12-23 17:26:45
你是正確的marc,但由於某種原因everythin顯示在相同的列例如YESales和AsofSales仍然在同一列 – MyHeadHurts 2010-12-23 17:29:47