2017-07-18 79 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")