我的下表链接如下:
http://i.stack.imgur.com/UlxDe.png
我想列出所有为每份价格都具有2个最高值的菜单项选择菜单项的所有时间。每份价格由单价除以估计份数计算得出。对于每个选定的项目,应显示项目编号,事件编号,房间编号,交货时间和单位计数。
我的查询如下:
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/