2016-10-27 29 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;