SQL MS ACCESS使用列的乘法创建别名

SQL MS ACCESS使用列的乘法创建别名,sql,ms-access,aggregate-functions,alias,Sql,Ms Access,Aggregate Functions,Alias,您好,在我的SQL代码中,通过将两个列值相乘来创建新的列“Alias”时遇到问题 问题: 编写一个查询,以显示每个价值400美元或以上的产品。每种产品的价值定义为现有数量 乘以该产品的单价。在结果表中, 显示产品ID、单价、现存量和产品价值。 按产品值按降序对结果排序 我的代码: Select Product_ID, Unit_Price, On_Hand, **Unit_Price * On_Hand as Product_Value** From Product_T Where Produc

您好,在我的SQL代码中,通过将两个列值相乘来创建新的列“Alias”时遇到问题

问题:

  • 编写一个查询,以显示每个价值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
    
    我一直收到一条错误消息,上面说:

    “您的查询未将指定的表达式‘单价’作为聚合函数的一部分”


    有没有关于如何跨越这一界限的想法?

    我认为不需要聚合。如果没有,则需要重复
    中的表达式,其中
    (或使用子查询):

    如果需要聚合,则需要一个
    具有
    子句:

    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;
    

    你需要旁边的人吗?这似乎没有必要,因为您没有使用SUM()或类似的函数
    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;