2017-07-18 80 views
0

我目前正試圖使用​​命令之前的一個case語句。提示以下錯誤:甲骨文錯誤與組通過

ORA-00979:不是GROUP BY表達式 00979. 00000 - 「不是一個GROUP BY表達式」 *原因:
*操作:在錯誤行:188列:12

select "CUSIP", "SIDE", TRADEDATE, ACCOUNTNO, SUM("QUANTITY") as CompressedQuantity, 

(case when quantity = 0 THEN 0 ELSE trunc(sum("PRICE"*"QUANTITY")/sum("QUANTITY"),6) END) as AVERAGEPRICE 
from rawtable 
group by "SIDE", "TRADEDATE", "ACCOUNTNO", "CUSIP") 

select CompressedQuantity,"SIDE", "TRADEDATE", "ACCOUNTNO", "CUSIP" FROM compresstable 
; 

回答

1

您需要檢查的總金額(數量),而不是數量

select "CUSIP", "SIDE", TRADEDATE, ACCOUNTNO, SUM("QUANTITY") as CompressedQuantity, 
    case when sum(quantity) = 0 THEN 0 ELSE trunc(sum("PRICE"*"QUANTITY")/sum("QUANTITY"),6) END as AVERAGEPRICE 
from rawtable 
group by "SIDE", "TRADEDATE", "ACCOUNTNO", "CUSIP" 
+0

謝謝。這個伎倆。 – user1060187

0

您必須將數量添加到您的組。

group by "SIDE", "TRADEDATE", "ACCOUNTNO", "CUSIP", SUM("QUANTITY")