2016-11-23 21 views
0

「GROUP BY式ではない」が尋ねられましたが、私とは非常に異なるようです。注文ID、注文アイテム数、合計注文価格 - GROUP BY式ではない

ビューからデータのリストを取得しようとしていますが、「GROUP BY式ではありません」というエラーが表示されています。

コード:

Select orderid, count(orderid) as Number_Of_Order_Items , count(orderid) * orderprice as Total_Order_Price from orderdetail Group by orderid order by orderid

基本的に私は、注文IDが表示され、その後のorderIDがOrderPriceで存在する回数を掛けることを何回のorderIDを得ることを期待しています。

私はGroup Byにすべての非集約句を持っていますので、ここで何が起こっていますか?

+3

orderpriceが集計されていません。あなたはsum(orderprice)を使うべきです。 –

+0

うわー、なぜ私はそれを理解していませんか分かりません。私もorderpriceでグループ化しようとしましたが、それは間違っていました。私はSUM()が不足していたので、今明らかです。ご回答有難うございます。あなたが答えを入れたら、私はそれを投票することができます。 – Justin

+0

'orderprice'とは何ですか?その名前では、項目数の掛け算や、すべての「注文列」を一緒に加えることは意味がありません。それは実際にITEM価格、つまり各ITEMの注文価格ですか?そして、実際には合計がより理にかなっています。 – mathguy

答えて

0

価格だけでsum()を使用します。

Select orderid, count(orderid) as Number_Of_Order_Items, 
     sum(orderprice) as Total_Order_Price 
from orderdetail 
Group by orderid 
order by orderid; 

注:これはorderpriceが本当に総括する必要がある各詳細レコードで別の価格であることを前提としています。いくつかのケースでは、数量欄もあるかもしれませんが、その列をproductpriceやunitpriceのように呼ぶと思います。