2017-08-15 10 views
1

私は電子メールで別のオフィスのコーダーと作業していましたが、このコードを使用しています。私はクエリを実行しようとするたびにOracleエラーを取得し続けます。以下は私が使用しているコードです:FROMキーワードが見つかりませんでした。SQL内のエラー

SELECT TALLY_TRAN_MSTR.SHIFT_DT, TALLY_TRAN_MSTR.LOGON_ID, TALLY_TRAN_MSTR.PRI_GRP_CD, 
    SUM(case TALLY_TRAN_MSTR.PRI_GRP_CD 
     WHEN 'PUT' THEN TALLY_TRAN_MSTR.FULL_PLLT_QTY 
     ELSE 0 
     END) AS Puts, 
    SUM(TALLY_TRAN_MSTR.FULL_PLLT_QTY) AS SUM(TALLY_TRAN_MSTR.FULL_PLLT_QTY) 
FROM WBR_RW.TALLY_TRAN_MSTR 
GROUP BY TALLY_TRAN_MSTR.SHIFT_DT, TALLY_TRAN_MSTR.LOGON_ID 
HAVING ((Puts/(SUM(TALLY_TRAN_MSTR.FULL_PLLT_QTY))) > 0.75) 
ORDER BY TALLY_TRAN_MSTR.SHIFT_DT, TALLY_TRAN_MSTR.LOGON_ID; 

これは間違いの原因ですか?どんなフィードバックもありがとう!

+0

'charatersなしでPuts/Totalsに変更しよう – user7294900

+2

最初の 'SUM()'関数の中に 'CASE'はありません。それは必要ではありませんか? –

+0

@ StevenK.Mariner私がしたとき、エラーはMIssing Right Parenthesisから "TOTALS"に変更されました:無効な識別子です。 – Lampoa

答えて

2

ゴナレバレッジここではいくつかの甘い、甘い別名:

SELECT T.SHIFT_DT, 
     T.LOGIN_ID, 
     T.PRI_GRP_CD, 
     SUM(CASE WHEN T.PRI_GRP_CD = 'PUT' 
       THEN T.FULL_PLLT_QTY 
       ELSE 0 
      END) AS Puts, 
     SUM(T.FULL_PLLT_QTY) AS SUM_PLLT_QTY 
FROM WBR_RW.TALLY_TRAN_MSTR AS T 
GROUP BY T.SHIFT_DT, T.LOGON_ID, T.PRI_GRP_CD 
HAVING (SUM(CASE WHEN T.PRI_GRP_CD = 'PUT' 
       THEN T.FULL_PLLT_QTY 
       ELSE 0 
      END)/SUM(T.FULL_PLLT_QTY)) > .75 
ORDER BY T.SHIFT_DT, T.LOGON_ID; 

は、それはあなたのためにどのように動作するかを参照してください。変更は最後の列エイリアスであり、HAVING句は明示的です。

関連する問題