2017-07-27 3 views
-1

でエラーに参加します。私はSQL状態を取得インナーは、私は<em>が</em>をJOIN_ID列に接合することで、テーブル<em>TB2</em>から<em>キー</em>の数を取得しようとしていますDB2

SELECT b.key, COUNT(*) 
FROM tb1 AS a 
INNER JOIN tb2 AS b 
WHERE(a.DATE BETWEEN '2017-05-01' and '2017-05-30') AND a.DESC1 = 'payment 
    method' AND a.DESC IN ('automobiles') 
    AND a.join_id = b.join_id 
GROUP BY b.key; 

:42601とエラーコード:-104エラー

この

は私がしようとしているクエリです。どんな提案も素晴らしいだろう。

ありがとうございます!

+0

私はここで何かが足りないのですか? 'INNER JOIN tb2 AS b'の後ろに' ON a.join_id = b.join_id'は必要ありません。だから、このように見えるはずです。 'INNER JOIN tb2 as b on a.join_id = b.join_id'を実行し、' Where'節で 'AND a.join_id = b.join_id'を削除します。それがDB2の明示的な構文の場合、私は謝罪します。 –

答えて

1

あなたが代わりにあなたはまた、その後、参加した後、あなたは、この構文を使用する場合(あなたはどこに参加する可能性があり、ON句を必要とするが、「」テーブルのエイリアスとして

の「1」を持っていますあなたの代わりにINNER JOINを文のカンマが必要

SELECT b.key, COUNT(*) 
FROM tb1 AS a 
INNER JOIN tb2 AS b ON a.join_id = b.join_id 
WHERE(a.DATE BETWEEN '2017-05-01' and '2017-05-30') AND a.DESC1 = 'payment 
    method' AND a.DESC IN ('automobiles') 
GROUP BY b.key; 
+0

申し訳ありませんが、それはタイプミスでした。私はそれを変更しましたが、それでも同じエラーが返されます – user3447653

+0

@ user3447653 - 上記の第2号も修正しましたか? – Hogan

0
  1. そのない良いアイデア(あなたの場合には:日付とDESC)のカラム名のキーワードを使用する。
  2. はあなたの日付の列があるかもしれませタイムスタンプ、この場合はDate関数を使用しようとします
  3. あなたに上の句は
  4. に参加し、その後忘れてしまったあなたは「」と「(a.DATE」

の間のスペースには、これを試していない。

SELECT b.key, COUNT(*) 
FROM tb1 a INNER JOIN tb2 b ON a.join_id = b.join_id 
WHERE Date(a.DATE) BETWEEN '2017-05-01' and '2017-05-30' 
AND a.DESC1 = 'payment method' 
AND a.DESC = 'automobiles' 
GROUP BY b.key 
関連する問題

 関連する問題