我在下面链接了以下表格:
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/