2016-07-01 6 views
1

Ich habe 2 Aggregatfunktionen in meiner SQL-Abfrage und ich möchte eins mit dem anderen multiplizieren, aber wenn ich es versuche, gibt es mir einen Fehler "kein GROUP BY-Ausdruck". unten ist eine vereinfachte Version meiner Abfrage:führen Sie Math-Operatoren auf mehrere Aggregatfunktionen SQL

SELECT S.employee, 
     avg(A.expected_duration) as duration1, 
     avg(A.efficiency) as efficiency1, 
     duration1 *efficiency1 as product1 

FROM S inner join A 
ON S.job_no = A.Job_no 
GROUP BY s.employee 

i, indem eine Aggregatfunktion vor der Mathematik versucht haben, aber nicht die richtigen Daten geben. Ich bin hier ratlos, also würde jede Hilfe geschätzt werden. lassen Sie mich wissen, wenn Sie noch etwas brauchen.

+0

So verwenden, wenn Sie sagen. - avg (A.expected_duration) * avg (A.efficiency) als Produkt - Funktioniert das? – GILLZ

+0

ja das macht Sinn ... danke! es ist immer der einfachste Mist, den ich auf – Mike

Antwort

4

Sie nicht auf den Alias ​​von Feldern finden können, die Sie in der gleichen select-Anweisung aufgerufen haben, müssen Sie die Berechnung nicht der Alias ​​

SELECT S.employee, 
     avg(A.expected_duration) as duration1, 
     avg(A.efficiency) as efficiency1, 
     avg(A.expected_duration)*avg(A.efficiency) as product1 

FROM S 
INNER JOIN A 
    ON S.job_no = A.Job_no 
GROUP BY s.employee 
+0

yay aufgehängt habe! das hat funktioniert!! macht auch Sinn Danke !!! – Mike