我有一個子查詢,只是獲得每個itemID銷售的物品數量的總和。我想獲得該子查詢的結果並將其乘以商品價格。但是當我嘗試引用用於子查詢的列別名時,Slq服務器給了我一個錯誤,說我嘗試使用的列是無效的。這是我的sql ...如何使用從子查詢返回的數據?
SELECT TOP (100) PERCENT Shop_1.ShopName, CustomerOrdersDtl_1.ItemID, ItemList_1.ItemName, SUM(CustomerOrdersDtl_1.Amount) AS tAmount
FROM dbo.CustomerOrders AS CustomerOrders_1 INNER JOIN
dbo.CustomerOrdersDtl AS CustomerOrdersDtl_1 ON CustomerOrders_1.ID = CustomerOrdersDtl_1.CustomerOrdersID INNER JOIN
dbo.ItemList AS ItemList_1 ON CustomerOrdersDtl_1.ItemID = ItemList_1.ID INNER JOIN
dbo.Shop AS Shop_1 ON CustomerOrders_1.ShopID = Shop_1.ID
GROUP BY Shop_1.ShopName, CustomerOrdersDtl_1.ItemID, ItemList_1.ItemName, ItemList_1.Price
ORDER BY Shop_1.ShopName
我試圖使用的列是tAmount。我想在它後面有另一個列,TotalCost,顯示價格* tAmount。當我將(Itemlist_1.Price * tAmount)設置爲TotalItemCost時,出現錯誤,說明tAmount是無效的列。
是否可以引用子查詢返回的數據?還是有另一種方法來做到這一點?
非常感謝所有幫助。 :)
'ORDER BY'項目引用'Shop_1',在這種情況下無效。它應該是'sqry.ShopName'(如果你想具體)或者只是'ShopName'(因爲子查詢是從中選擇的唯一表)。 – 2011-03-09 05:51:31
你是對的。我修改了答案。 – 2011-03-09 05:55:17
謝謝。你的建議按我想要的方式工作。有趣的是我爲什麼沒有想到這一點。大多數時候,簡單的答案確實是最好的。再次感謝! :) – 2011-03-09 06:12:28