2016-04-28 7 views
0

私はSQLとサブクラスを初めて使います。サブクラスを単独で実行すると、正しいデータ出力が得られます。私は完全なクエリを実行するときしかし、私はエラーメッセージを取得Select SQLで式が見つからない

SELECT * 3行目でエラー:ORA-00936:

SELECT 
MAX(
    SELECT 
    SUM(
     ALLOCATION.HourlyRate 
     * 
     ACTION.HrsWorked 
     ) 
    FROM ALLOCATION 
    INNER JOIN ACTION 
    ON ((ACTION.ActId = ALLOCATION.ActId) AND (ACTION.EmpId = ALLOCATION.EmpId)) 
    GROUP BY (ALLOCATION.ActId) 
) 
FROM ALLOCATION 
GROUP BY (ALLOCATION.ActId) 

SOLUTION:行方不明の式ここで

は私のコードです:

SELECT MAX(sum_total_pay) 
FROM 
(
    SELECT SUM(ALLOCATION.HourlyRate * ACTION.HrsWorked) AS sum_total_pay 
    FROM ALLOCATION 
    INNER JOIN ACTION 
    ON ((ACTION.ActId = ALLOCATION.ActId) AND (ACTION.EmpId = ALLOCATION.EmpId)) 
    GROUP BY (ALLOCATION.ActId) 
); 
+0

は、これらすべての無用の括弧削除してみてください - 周りに特にを'group by'節の列しかし、 'select'リスト内のスカラーサブクエリは実際には意味をなさない。あなたは正確に何を達成しようとしていますか? –

+0

私は派生テーブルベースのクエリを代わりに行うでしょう。 SUM()でSELECTを実行することはできません。 – jarlh

+0

私は、特定のアクティビティIDのhourlyRate列とhrsWorked列のすべての製品の合計である最大 '合計金額'を見つけようとしています。アクティビティ2 'testin'は(4 * 10 + 5 * 8)の合計支払いを持つことができますが、アクティビティ1 'pythonコーディング'は(3 * 4 + 5 * 10.5 + 12 * 16)これら2つの最大総支払額を求める。 – Jed

答えて

0

さらに2つのかっこが必要です。

SELECT MAX (( SELECT SUM (ALLOCATION.HourlyRate * ACTION.HrsWorked) 
        FROM ALLOCATION INNER JOIN ACTION ON (ACTION.ActId = ALLOCATION.ActId) AND (ACTION.EmpId = ALLOCATION.EmpId) 
       GROUP BY (ALLOCATION.ActId))) 
    FROM ALLOCATION 
GROUP BY ALLOCATION.ActId 

Select into MAXはparanthesisでなければなりません。

ロジックが明確ではありません。

SELECT ALLOCATION.ActId, SUM (ALLOCATION.HourlyRate * ACTION.HrsWorked) total_pay 
    FROM ALLOCATION b INNER JOIN ACTION ON ACTION.ActId = ALLOCATION.ActId AND ACTION.EmpId = ALLOCATION.EmpId 
GROUP BY ALLOCATION.ActId 

あなたはどの活動が最大の支払いを持って、見たい場合は、DESCによって順:これは、あなたの活動あたりの総賃金を与える

SELECT * 
    FROM ( SELECT ALLOCATION.ActId, SUM (ALLOCATION.HourlyRate * ACTION.HrsWorked) total_pay 
       FROM ALLOCATION b INNER JOIN ACTION ON ACTION.ActId = ALLOCATION.ActId AND ACTION.EmpId = ALLOCATION.EmpId 
      GROUP BY ALLOCATION.ActId) 
ORDER BY total_pay DESC 
関連する問題