2015-06-21 24 views
0

我試圖使用存儲過程從庫存表中找到前10個有利可圖的產品並將其打印出來。庫存表包含成本價格和銷售價格,我需要從銷售價格中扣除成本價格,並使用計算出的答案對排名前十的有利可圖的產品進行分類和打印。創建存儲過程並打印前10條目

我該怎麼做?

+0

您正在使用哪種dbms產品? (這兩個存儲過程和前10名往往不符合ANSI SQL ...) – jarlh

+0

即時通訊使用ms sql server 2012 – user4725989

+0

是的,mssql是前10名,而且mysql是數量限制10. – HelloNewWorld

回答

3
MSSQL     : SELECT TOP 10 * column FROM table; 

MySQL/PostgreSQL/Sqlite : SELECT column FROM table LIMIT 10; 

Oracle     : SELECT column FROM table WHERE ROWNUM <= 10; 

Sybase     : SET rowcount 10;SELECT column FROM table; 

DB2      : SELECT column FROM table FETCH FIRST 10 ROWS ONLY; 

Informix     : SELECT FIRST 10 * FROM table; 
+0

我怎樣才能根據計算出來的欄目來選擇前10名?或者更確切地說是售價 - 成本價格? – user4725989

+0

不錯的工作!較新的Oracle版本也支持ANSI SQL的FETCH FIRST! – jarlh

+1

另外,如果你有'TOP 10',你應該總是**也有'ORDER BY' - 否則你的'TOP'條款是毫無意義的 - –

0

MS SQL - 我希望它可以工作。它將顯示前10個利潤產品。您可以在過程中添加此查詢,然後在需要的地方調用過程。

SELECT Top 10 * FROM 
(
SELECT (sellingprice-costprice) AS difference 
FROM inventory 
) difference_data 
ORDER BY difference Desc