2012-02-14 13 views
0

上位10個の値(quantity * price)を持つアイテムを表示する必要があります。 MySQLではLIMITを使用できますが、これはSQL Serverでは不可能です。目標を達成するにはどうすればいいですか?事前にトップ10の結果をテーブルに表示する(SQL Server)

おかげ

SELECT ItemID, Itemname, Quantity, Price, 
CONVERT(Decimal(8,0),ROUND((Quantity*price),2)) AS Total 
FROM Item 
+0

[Microsoft SQL Server 2000でMySQL LIMIT句をエミュレートする]の複製が可能です(http://stackoverflow.com/questions/216673/emulate-mysql-limit-clause-in-microsoft-sql-server-2000) – CanSpice

+3

yrタイトルで!トップ10を選択してください。q * p DESCで注文してください。 – Andrew

答えて

7
SELECT TOP 10 ItemID, Itemname, Quantity, Price, 
CONVERT(Decimal(8,0),ROUND((Quantity*price),2)) AS Total 
FROM Item 
ORDER BY Quantity * Price DESC 

ORDER BY Quantity * Price DESCは、最高値が最初に返されていることを確認します。

+0

あなたが考えるよりも簡単なことがあります。どうもありがとう! – holyredbeard

+0

'ORDER BY Total DESC'と言うこともできます。' ORDER BY'は最後に処理されるので、 'SELECT'リストの別名を参照できる唯一の場所です。答えを変更しないで、わずかにきれいなコードにつながります。 –

4
SELECT TOP 10 TItemID, Itemname, Quantity, Price, 
CONVERT(Decimal(8,0),ROUND((Quantity*price),2)) AS Total 
FROM Item 
ORDER BY Total DESC 
1

TOP句を使用します。

1
SELECT TOP 10 ItemID, ... 

おそらくこれが役立ちますか? BOTTOMキーワードも見てください。

+0

'BOTTOM'?私はあなたがSQL Server以外の何かを考えていると思います。 –

+0

多分あなたは正しいことをしています。 – zgnilec

関連する問題