2016-05-03 15 views
-1

この問合せ後にエラーが発生します。ORA-00933:SQLコマンドが正しく終了しなかったエラー

    Select count(*) entity_id 
        FROM pcspro.bas2016_process_and_verify a, 
         pcspro.bas2016_mailout_return b, 
         pcspro.bas2016_universe c 
        WHERE a.entity_id = b.entity_id 
         AND b.entity_id = c.entity_id 
         AND c.entity_id = a.entity_id 
       GROUP BY entity_id 
       WHERE STATUS IS NOT NULL AND ENTITY_REPORTED_STATUS = 'W'; 
+0

あなたがすでにある場合a.entity_id = b.entity_idとb.entity_id = c.entity_idを確認してください。どうしてなぜc.entity_id = a.entity_idもチェックする必要がありますか?それは他の2つから自動的に続くのではありませんか?また、SQL標準構文を学び、使用する方が良い: 'FROM ... a JOIN ... b ON a.entity_id = b.entity_id JOIN ... c ON b.entity_id = c.entity_id STATUS NOT NULL」等 – mathguy

答えて

0

あなたはカンマが欠落して

Select 
    count(*) , 
    a.entity_id 
FROM pcspro.bas2016_process_and_verify a, 
    pcspro.bas2016_mailout_return b, 
    pcspro.bas2016_universe c 
WHERE a.entity_id = b.entity_id 
    AND b.entity_id = c.entity_id 
    --AND c.entity_id = a.entity_id --no need 
AND STATUS IS NOT NULL AND ENTITY_REPORTED_STATUS = 'W' 
GROUP BY a.entity_id 
+0

元の質問への私のコメントに加えて、これは "entity_id"が曖昧であると不平を言うでしょう。 – mathguy

+0

これらのテーブルのいずれかにentity_idは存在しますか?それが存在する場合、それは複数のテーブルに存在しますか?その場合は、表の別名を使用します。 for ex)a.entity_id – dfdsfdsfsdf

+0

申し訳ありませんが、あなたのソリューションを編集することはできません。あなたまたはフォーラムの専門家のみが行うことができます。 – mathguy

-1

によってグループの前に句を使用すると、ANSI SQLでクエリを書き直す必要がありますどこにいる移動している:

Select count(*), 
     entity_id 
FROM pcspro.bas2016_process_and_verify a 
    INNER JOIN pcspro.bas2016_mailout_return b 
     USING(entity_id) 
    INNER JOIN pcspro.bas2016_universe c 
     USING(entity_id) 
WHERE STATUS IS NOT NULL 
    AND ENTITY_REPORTED_STATUS = 'W' 
GROUP BY entity_id; 
関連する問題