0

我对 SQL 相当陌生,并且对收到的错误消息有一个简单的问题(此问题的标题)。我试图找出库存中物品的总价值(itemQuantity * itemCost)、平均物品成本和潜在的收入损失(itemQuantity * itemMktValue)

SELECT
    (itemQuantity * itemCost) 'Total',
    AVG (itemCost) 'AvgerageItemCost',
    (itemQuantity * itemMktValue) 'LossedRevenue'
FROM
    Item;

如果有人可以帮助我,将不胜感激。

4

3 回答 3

3

您的select语句中包含一个聚合函数 ( AVG)。因此,SQL 假定您有一个聚合查询。

没有group by子句,因此 SQL 期望聚合所有内容,如下所示:

select sum(itemQuantity), count(*)
from item

但是,在您的查询中,您有几个变量不是聚合函数的参数——itemQuantity例如。大概,你想要这样的东西:

SELECT sum(itemQuantity * itemCost) 'Total',
       AVG (itemCost) 'AvgerageItemCost',
       sum(itemQuantity * itemMktValue) 'LossedRevenue'
FROM Item;

您可能还需要基于每个项目的此信息,在这种情况下,您将使用group by

SELECT itemid, sum(itemQuantity * itemCost) 'Total',
       AVG (itemCost) 'AvgerageItemCost',
       sum(itemQuantity * itemMktValue) 'LossedRevenue'
FROM Item
group by itemid
于 2013-03-01T20:39:10.453 回答
1

尝试:

SELECT
    SUM(itemQuantity * itemCost) 'Total',
    AVG (itemCost) 'AvgerageItemCost',
    SUM(itemQuantity * itemMktValue) 'LossedRevenue'
FROM
    Item;
于 2013-03-01T20:37:08.227 回答
0

如果我理解正确,你需要这样的东西:

SELECT
    SUM((itemQuantity * itemCost) 'Total',
    AVG (itemCost) 'AvgerageItemCost',
    SUM(itemQuantity * itemMktValue) 'LossedRevenue'
FROM
    Item;
于 2013-03-01T20:39:31.280 回答