Sql 在查询时返回MAX函数?

Sql 在查询时返回MAX函数?,sql,oracle11g,max,Sql,Oracle11g,Max,我需要找到利润率最高的库存项目,但是我不确定如何做,因为这是在查询中计算的,而不是从表中获取的。 我的脚本如下(使用Oracle11g),当我只需要一个库存项目时,当前返回几个库存项目。请帮忙 SELECT (UPPER(Orderline.StockID) || ' ' || INITCAP(StockDesc)) AS "Item", CategoryDesc AS "Category", LocationCity AS "Warehouse", Quantity AS "Number So

我需要找到利润率最高的库存项目,但是我不确定如何做,因为这是在查询中计算的,而不是从表中获取的。 我的脚本如下(使用Oracle11g),当我只需要一个库存项目时,当前返回几个库存项目。请帮忙

SELECT (UPPER(Orderline.StockID) || ' ' || INITCAP(StockDesc)) AS "Item",
CategoryDesc AS "Category",
LocationCity AS "Warehouse",
Quantity AS "Number Sold",
TO_CHAR(Quantity * UnitPrice) AS "Total Income",
TO_CHAR(Quantity * UnitCost) AS "Total Cost",
TO_CHAR((Quantity * UnitPrice) - (Quantity * UnitCost)) AS "Profit"
FROM Orderline INNER JOIN 
(Stock INNER JOIN 
("CATEGORY" INNER JOIN Warehouse
ON "CATEGORY".Warehouse = Warehouse.WarehouseID)
ON Stock.ItemCategory = "CATEGORY".CategoryID)
ON Orderline.StockID = Stock.StockNo
ORDER BY ((Quantity * UnitPrice) - (Quantity * UnitCost)) DESC;
试试这个

select * from (SELECT (UPPER(Orderline.StockID) || ' ' || INITCAP(StockDesc)) AS "Item",
        CategoryDesc AS "Category",
        LocationCity AS "Warehouse",
        Quantity AS "Number Sold",
        TO_CHAR(Quantity * UnitPrice) AS "Total Income",
        TO_CHAR(Quantity * UnitCost) AS "Total Cost",
        TO_CHAR((Quantity * UnitPrice) - (Quantity * UnitCost)) AS "Profit"
        FROM Orderline INNER JOIN 
        (Stock INNER JOIN 
        ("CATEGORY" INNER JOIN Warehouse
        ON "CATEGORY".Warehouse = Warehouse.WarehouseID)
        ON Stock.ItemCategory = "CATEGORY".CategoryID)
        ON Orderline.StockID = Stock.StockNo
        ORDER BY Profit DESC)
        where rownum = 1;
我在评论中看到,您在内部选择上尝试了
rownum=1
。。。这将选择唯一的
项目
,并使用
排序依据
对其进行排序。对一组元素进行排序的方法不多。但是,如果要对所有元素进行排序,可以只选择第一个。这就是这里发生的事情



查看有关此案例的更多信息

您需要检索最大“利润”字段?将您的查询包装在
select*from(…您在这里的查询…)x中,其中rownum=1
(根据Bacon Bit的建议)@JessRap每…的最高利润。。。。。?项目?类别warehouse?@Andomar,如果没有子查询、内联视图或WITH子句,它将无法工作。在下订单之前,@Matt每件商品的最高利润在哪里?哦,这成功了!非常感谢你!