2016-12-09 10 views
0

私はこれを動作させることができません...任意のアイデアですか?それはHAVING句または選択リストに含まれるサブクエリであり、そして凝集され、列が外部参照でない限り内部結合とカウントによるSQLの更新

update Products 
set UnitPrice = UnitPrice * 0.9 
from Products p 
inner join [Order Details] od 
on p.ProductID = od.ProductID 
where COUNT(p.ProductID) > 50 

集合体はWHERE句に表示されないこと。

おかげ

+0

「私はこれを動作させることができません...」とはあまり役に立ちません。問題を説明するか、エラーメッセージを投稿することをお勧めします。 – Tony

+0

Having句で試しましたか? – Hari

+0

@ハリーはい、持っていると運がない – arielsp

答えて

3

このお試しください:おそらくこのような何かを

update p 
set UnitPrice = UnitPrice * 0.9 
from Products p 
inner join (
    select ProductID 
    from [Order Details] 
    group by ProductID 
    having count(*) > 50 
    ) as od 
on od.ProductID = p.ProductID 
0

使用HAVING句の代わりに、WHEREクエリで

3

を、あなたのRDBMSに依存し、それに応じて

このタグを付ける必要があります
update Products set UnitPrice = UnitPrice * 0.9 
where ProductID in (
    select ProductID from [Order Details] 
    group by ProductID 
    having count(*) > 50) 
0

外出JOIN:

update Products set UnitPrice = UnitPrice * 0.9 
from (select ProductID 
    from [Order Details] 
    group by ProductID 
    having count(*) > 50) a 
where Product.ProductID=a.ProductID