2017-07-06 1 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

あなたが欲しいものを記述方法、あなたはwhere句にhavingを移動する必要がありますし、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; 

を私はあなたを修正するかどうかわからないんだけど問題。

関連する問題