Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL SELECT Sum-Werte ohne Einbeziehung von Duplikaten

Sie sollten Unterabfragen für int und ext verwenden, um das Summieren durchzuführen, und sich mit den Unterabfragen verbinden.

Ich schlage auch vor, explizite JOINs anstelle von table, table, table

zu verwenden

z. B.

SELECT emp.Name, int.Amount AS InternalCostTotal, ext.Amount AS ExternalCostTotal
FROM Employees emp
JOIN ( 
    SELECT EmployeeID, SUM(Amount) AS Amount 
    FROM InternalCosts 
    GROUP BY EmployeeID 
) int ON emp.EmployeeId = int.EmployeeID
JOIN ( 
    SELECT EmployeeID, SUM(Amount) AS Amount 
    FROM ExternalCosts 
    GROUP BY EmployeeID 
) ext ON emp.EmployeeId = ext.EmployeeID