2017-01-18 9 views
0

私は次のクエリを使用していますが、次のエラーが表示されます(#1111 - グループ機能の無効な使用)。クエリは次のとおりです。#1111 - グループ機能の無効な使用 - MYSQL

SELECT 
    a.`wo_number`, 
    a.`crew_est`, 
    a.`manhour_est`, 
    b.`act_hours`, 
    a.`status`, 
    SUM(CASE 
     WHEN a.`status` = 'FINISH' THEN SUM(a.`status`) 
     ELSE 0 
    END)/SUM(a.`crew_est` * a.`manhour_est`) AS `total_percentage` 
FROM 
    `table_a` AS a 
     LEFT JOIN 
    `table_b` AS b ON a.`wo_number` = b.`wo_number` 
WHERE 
    a.`wo_number` = 'some_number' 
GROUP BY a.`wo_number` , a.`sheet` , a.`serial` 

SUM()をCASE WHEN THEN内で削除すると、クエリが機能します。しかし、私は私の必要性のために正確な結果を得ることはできません。

ご協力いただければ幸いです。 ありがとうございます。

+0

ある

SELECT a.'wo_number', a.'crew_est', a.'manhour_est', b.'act_hours', a.'status', SUM(CASE WHEN a.'status' = 'FINISH' THEN 1 -- or the column you want to aggregate END)/SUM(a.'crew_est' * a.'manhour_est') AS 'total_percentage' FROM 'table_a' AS a LEFT JOIN 'table_b' AS b ON a.'wo_number' = b.'wo_number' WHERE a.'wo_number' = 'some_number' GROUP BY a.'wo_number' , a.'sheet' , a.'serial' 

あなたはおそらくこれをしたいですか?また、テキストフィールド 'status'をSUMmingする理由は? – Alfabravo

答えて

0

SUM関数はネストされていますが、これは許可されていません。あなたは `status`フィールドのネストされた合計が必要なのはなぜまた、

SUM(CASE 
     WHEN a.`status` = 'FINISH' THEN 1 
    END) 

の略記は

SUM(a.`status` = 'FINISH') 
+0

私はクエリを試して、それは動作していますが、結果が私の必要性に合っていません。私はmysqlクエリにExcel式を変換しようとします。 = SUMIF(E $ 3:E $ 19、 "FINISH"、D $ 3:D $ 19)/ SUM(D $ 3:D $ 19)ここでE $ 3:E $ 19 =ステータス、FINISHは条件、D $ 3 :D $ 19は(a.crew_est * a.manhour_est) –

+0

そしてそれは何でしょうか?テキスト列「ステータス」を合計する理由は何ですか? – GurV

+0

助けてください? –

関連する問題