2017-07-06 66 views
-1

我正在嘗試查找指定時間鍵的每個產品密鑰的平均事務數。這是DB2中的查詢。DB2中的SQL錯誤

select  
     act.product_key 
     avg(act.cnt) as avg_transaction 
    from tb1 as ca 
    inner join tb2 as act 
    on ca.base_key = act.base_key and act.time = ca.time and act.product_key = ca.product_key 
    group by act.product_key, act.time 
    having act.time in (16476,16516, 16556,16596, 16636,16676,16716, 16756, 16796,16836,16876,16916,16956); 

這是我得到的上述查詢錯誤。我不確定發生了什麼問題,這是我第一次查詢DB2。任何建議都會很棒。

Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=(;act.product_key 
     avg;,, DRIVER=3.66.46 
    SQLState: 42601 
    ErrorCode: -104 
    Error: DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-104;42601;(|act.product_key 
     avg|,, DRIVER=3.66.46 
    SQLState: 56098 
    ErrorCode: -727 
+0

您錯過了逗號。 – mustaccio

回答

1

你描述你想要的東西的樣子,你應該在having移動到where條款並從group by時間關鍵:

select act.product_key, avg(act.cnt) as avg_transaction 
from tb1 ca inner join 
     tb2 act 
     on ca.base_key = act.base_key and act.time = ca.time and act.product_key = ca.product_key 
where act.time in (16476, 16516, 16556,16596, 16636, 16676, 16716, 16756, 16796, 16836, 16876, 16916, 16956) 
group by act.product_key; 

我不知道這是否會解決您的問題。