【问题标题】:SQL MS ACCESS Create an Alias using Multiplication of ColumnsSQL MS ACCESS 使用列乘法创建别名
【发布时间】:2016-10-27 02:02:59
【问题描述】:

您好,我无法通过将两个列值相乘来在我的 SQL 代码中创建一个新列“别名”。

问题:

  1. 编写查询以显示价值为 400 美元或以上的所有产品。每个产品的价值定义为手头的数量 乘以该产品的单价。结果表中, 显示产品编号、单价、现有数量和产品价值。 按产品值降序对结果进行排序。

我的代码:

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

我不断收到一条错误消息:

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

关于如何超越这个的任何想法?

【问题讨论】:

  • 你需要那个群吗?这似乎没有必要,因为您没有使用 SUM() 或类似的

标签: sql ms-access aggregate-functions alias


【解决方案1】:

我认为不需要聚合。如果没有,则需要重复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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多