2017-11-01 11 views
-1

私はSQLクエリを書いています。範囲価格の新しい列を作成

商品価格を表示するには、価格帯を表示する必要があります。製品の価格が4未満の場合、価格帯は「低価格」と記載されます。価格が4以上10未満の場合、価格帯は「平均価格」と表示されます。価格が10以上の場合、価格帯は「高値」として表示されます。

この範囲の列を定義する方法はありますか?価格の

テーブル:

+0

ヒント: 'CASE'式。 –

+0

ようこそスタックオーバーフロー! [ツアー](https://stackoverflow.com/tour)にアクセスし、質問を編集して問題のあるSQLコードを表示してください。 –

答えて

1
select distinct pp.ProductID , p.Name, pp.UnitPrice ,"PriceRange"= 
case 

    WHEN pp.UnitPrice < 4 THEN 'Low Price' 
    WHEN pp.UnitPrice >=4 and pp.UnitPrice < 10 THEN 'Average price' 
    WHEN pp.UnitPrice >=10 THEN 'High Price' 
end 
from Purchasing.PurchaseOrderDetail pp ,Production.Product p 
where pp.ProductID =p.ProductID 
order by ProductID 
+1

UnitPrice = 10の場合、大文字と小文字は一致しません。 case文にELSE句を追加し、その前に "PriceRange" =の代わりに文の後に 'as PriceRange'を使用することも検討してください。もっと重要なことは、おそらく別のグループではなく、(そして平均して)グループを欲しいということです。 – tpdi

+0

Purchasing.PurchaseOrderDetail pp、Production.Product p ここでpp.ProductID = p.ProductID'から古いスタイルを避け、Purchasing.PurchaseOrderDetail ppのANSIスタイルを使用します。INNER JOIN Production.Product p ON pp.ProductID = p.ProductID ' – Squirrel

関連する問題