2017-04-06 64 views
0

您好我想從選擇中獲得最後一個值,這可能嗎?我已經試過如下:從選擇中獲得最後一個值

update order set order_total = 
(select last item_cost * order_quantity 
FROM order_stock, order 
WHERE order_stock.menu_item = 
order.menu_item); 

如果我選擇* ITEM_COST order_quantity FROM order_stock,爲了 WHERE order_stock.menu_item = order.menu_item它將返回2倍的值,我只想得到恢復的最後一項

+0

我沒有看到任何'ORDER BY'。 「* last *」是什麼意思? –

+0

請提供最小樣本數據和預期結果 –

+0

如果我選擇item_cost * order_quantity FROM order_stock,order WHERE order_stock.menu_item = order.menu_item它將返回2個值200和400.我需要選擇400 – Michael

回答

0

快速谷歌之後,我發現這一點: https://www.w3schools.com/sql/sql_func_last.asp

頁提出了不同的SQL版本的多種方法,因爲你與Oracle標記你的問題,我會在這裏提供一個:

SELECT column_name FROM table_name 
WHERE ROWNUM <=1 
ORDER BY column_name DESC; 
+0

LAST()不是Oracle中的一個函數。另外,where子句在order by子句之前處理。因此,您很可能無法從該查詢中獲得所需的值。 –

+0

-1,從鏈接的站點:「注意:LAST()函數僅在MS Access中受支持。」但在Oracle中有一個名爲[「last」]的函數(https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions071.htm)。這個例子是無稽之談,雖然它來自你鏈接到的網站。 Oracle首先應用select子句,然後對結果集進行排序。所以「排序」沒有效果。 – miracle173

+0

這可能是OP準備接受的,但答案本身是錯誤的和誤導的。 – BriteSponge

相關問題