我想創建一個基於來自其他幾列的信息計算的列,這對我來說很難作爲SQL的新人。下面是我嘗試使用的代碼,但它對「Sum(SlotActual + TableActual)As Actual」這一行感到憤怒。我猜這是由於這些是別名。我想我需要使用子查詢,但我不確定,因爲我以前沒有這樣做過。如果可能的話,我寧願不要顯示SlotActual或TableActual,我只需要計算這些,然後添加它們以獲得實際值。這是在SQL 2008中完成的。請讓我知道我是否遺漏了您需要的任何信息。複雜的添加問題
我越來越Select Ltrim(Rtrim(P.Player_ID)) as "Player ID",
Ltrim(Rtrim(P.FirstName)) as "First Name",
Ltrim(Rtrim(P.LastName)) as "Last Name",
Sum(CashIn) as "Cash In",
Sum(CashOut) as "Cash Out",
Sum(Jackpot) as "Jackpot",
Sum(case when S.StatType = 'Slot' then S.CashIn - S.CashOut - S.JackPot end) as SlotActual,
Sum(case when S.StatType = 'Pit' then S.CashIn + S.ChipsIn + S.FrontIn + S.CreditIn - S.CashOut end) as TableActual,
Sum(SlotActual + TableActual) As Actual
From dbo.CDS_PLAYER as P
Join dbo.CDS_ACCOUNT as A
On P.Player_ID = A.Primary_ID
Join dbo.CDS_STATDAY as S
On P.Player_ID = S.Meta_ID
Where S.GamingDate Between '09/15/2014 12:00:00 AM' and '09/21/2014 11:59:59 PM'
And P.EntryDate Between '09/15/2014 12:00:00 AM' and '09/21/2014 11:59:59 PM'
And S.IDType = 'P'
Group by Ltrim(Rtrim(P.Player_ID)) ,
Ltrim(Rtrim(P.FirstName)),
Ltrim(Rtrim(P.LastName))
錯誤信息如下:
消息207,級別16,狀態3,行3 無效的列名稱SlotActual「。 消息207,級別16,狀態3,行3 無效的列名稱'TableActual'。
請張貼錯誤的SQL是給你的。 – 2014-09-26 17:58:31
您不能在集合函數中使用別名。 sql服務器不支持這個。嘗試把你的整個公式扔在總和中。 – paqogomez 2014-09-26 18:02:22