我在下面链接了以下表格:
http://i.stack.imgur.com/UlxDe.png
我想列出为菜单项选择菜单项的所有时间,这些菜单项的每份价格具有2个最高值。每份价格按单位价格除以估计份数计算。对于每个选定的项目,应显示itemno,eventid,roomid,交付时间和单位数。
我的查询如下:
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);
这是我能提出的唯一一个问题,而且它还远远不够。
答案 0 :(得分:1)
首先,您需要将表连接在一起。有点猜测连接键是什么,但让我们说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;