mysql - 返回计算值中的两个最高值

标签 mysql sql sql-server

我在下面链接了以下表格:

http://i.stack.imgur.com/UlxDe.png

我想列出为每份价格具有 2 个最高值的菜单项选择菜单项的所有时间。每份价格的计算方法是单价除以预计份量。对于每个选定的项目,应显示项目编号、事件 ID、房间 ID、交货时间和单位数量。

我的查询如下:

 SELECT M.ITEMNO, S.EVENTID, S.ROOMID, S.DELIVERY_TIME, S.UNIT_COUNT
 FROM MENUITEM M, SELECTEDITEM S
 WHERE MAX(M.UNIT_PRICE / M.EST_SERVINGS);

这是我能想到的唯一查询,但它根本不正确。

最佳答案

首先,您需要将表连接在一起。连接键是什么有点猜测,但假设 ItemNo 对于两个表都是通用的。然后,您想按比率对行进行排序并选择两个最高值:

SELECT M.ITEMNO, S.EVENTID, S.ROOMID, S.DELIVERY_TIME, S.UNIT_COUNT
FROM MENUITEM M JOIN
     SELECTEDITEM S
     ON M.ITEMNO = S.ITEMNO
ORDER BY M.UNIT_PRICE / M.EST_SERVINGS DESC
LIMIT 2;

limit 2 是 MySQL 的语法。在 SQL Server 中,您可以使用SELECT TOP 2

编辑:

在 SQL Server 中,语法为:

SELECT TOP 2 M.ITEMNO, S.EVENTID, S.ROOMID, S.DELIVERY_TIME, S.UNIT_COUNT
FROM MENUITEM M JOIN
     SELECTEDITEM S
     ON M.ITEMNO = S.ITEMNO
ORDER BY M.UNIT_PRICE / M.EST_SERVINGS DESC;

关于mysql - 返回计算值中的两个最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132615/

相关文章:

python - 如何使用 python 和 mysql 删除表的内容

sql - 如何修复列必须出现在sql select中的group by子句错误

sql - 使用sql查询老化结构

sql - 如何将递归 CTE 转换为可在 SQL Server 2000 中使用

c# - 在共享主机上使用 SQL Server 数据库

mysql - 如何在 MySQL 中返回数据透视表输出?

python - 更新 mysql 字段未读结果发现

php - mysqli 查询搜索整个数据库

sql - 在 ms sql server 的 char 列中存储的日期或整数值上使用关系运算符是否有效?

mysql - mysql存储过程中sql语法错误