2016-11-23 47 views
0

我知道「不是GROUP BY表達式」已被問到,但我的看法很不一樣。列表orderId,訂單項目數量和總訂單價格 - 不是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

基本上我期望得到將訂單,多少次的順序編號出現,然後乘以將訂單存在由OrderPrice的次數。

我有我的集團所有非集合子句,所以這裏發生了什麼?

+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真的就需要進行總結每一個細節記錄一個單獨的價格。在某些情況下,可能還會有一個數量列 - 但我希望該列被稱爲諸如產品價格或單位價格之類的東西。