不能找到任何地方這個問題......我有這樣的說法:SQL Server的ALTER TABLE與Case語句
select State=(CASE Discount
WHEN 0 THEN sum((Price * Quantity) * (1 + Discount))
ELSE sum((Price * Quantity) * (Discount)) end)
from Table1 where OrderID is not null group by Price, OrderID, Discount
order by OrderID
這是什麼東西做的是基礎計算是否有折扣列中的數字總計,原因是如果它的0,那麼我加1以防止總數被設置爲0,並且該數字將僅僅是自己的時間。另一個語句計算有百分比的餘數。現在,這個語句完美的作品,但我不能制定出在ALTER TABLE或UPDATE語句的順序/語法,任何幫助將是巨大的,歡呼:)這裏是我到目前爲止有:
Alter table Table1 add Total As
(CASE Discount
WHEN 0 THEN sum((Price * Quantity) * (1 + Discount))
ELSE sum((Price * Quantity) * (Discount)) end)
from Table1 where OrderID is not null group by Price, OrderID, Discount
order by OrderID
^^上面不喜歡這個詞「從」
update Table1 Total = CASE Discount
WHEN 0 THEN sum((Price * Quantity) * (1 + Discount))
ELSE sum(Price * Quantity) * (Discount)) end
^^上面給出了這樣的錯誤 消息157,15級,狀態1,行 聚合不應出現在UPDATE語句的集合列表中。
您不能在計算列中使用子查詢。如果你覺得這是一個定義,你需要重用,那麼你最好的選擇就是創建一個視圖。 – GarethD
所以這是2以上錯誤意味着什麼呢? 加上,如果我創建一個視圖,我可以添加一個過程來更新視圖,以便總表自動更新?感謝您的幫助 – Crezzer7
您不需要填充視圖,它基本上只是一個保存的查詢,所以當您引用視圖時,您將始終獲得最新結果。 – GarethD