2016-10-27 30 views
-1

您好,我無法通過乘以兩列值在我的SQL代碼中創建一個新的列「別名」。SQL MS ACCESS使用列乘法創建別名

問題:

  • 撰寫查詢,以顯示每一個具有$ 400以上的值的產品。每種產品的價值定義爲現有數量 乘以該產品的單價。在結果表中, 顯示產品ID,單價,現有數量和產品價值。 按產品價值降序排列結果。
  • 我的代碼:

    Select Product_ID, Unit_Price, On_Hand, **Unit_Price * On_Hand as Product_Value** 
    From Product_T 
    Where Product_Value >= 400.00 
    Group by Product_ID 
    Order by (Product_Value) desc 
    

    我不斷收到錯誤消息說:

    「您的查詢不包括指定表達式‘單價’作爲一個聚合函數的一部分」

    任何想法如何超越這個?

    +0

    你需要的組在那裏?這似乎沒有必要,因爲你沒有使用SUM()或類似的東西 – LordBaconPants

    回答

    0

    我不認爲需要聚合。如果沒有,你需要重複的where表達(或使用子查詢):

    Select Product_ID, Unit_Price, On_Hand, 
         (Unit_Price * On_Hand) as Product_Value 
    From Product_T 
    Where (Unit_Price * On_Hand) >= 400.00 
    Order by (Unit_Price * On_Hand) desc; 
    

    如果需要的聚合,然後你想有一個having條款:

    Select Product_ID, 
         sum(Unit_Price * On_Hand) as Product_Value 
    From Product_T 
    Group by Product_ID 
    Having sum(Unit_Price * On_Hand) >= 400.00 
    Order by sum(Unit_Price * On_Hand) desc;