SQL 4 tables jointure interne ramasser sum Nulls aussi?

J'ai 4 tables …. Employés, clients, commands et Order_Info. J'essaye de joindre les 4 tables pour additionner les montants de la command et calculer la commission des employés basée sur 7%. Je suis très proche de résoudre ce problème, mais j'ai un léger problème: je ne reçois pas tous les employés parce que less apparaissent dans ma table Employés. Voici comment j'ai écrit ma requête:

SELECT Employees.lName, Employees.fName, SUM(quantOrdered * costEach) AS ttl_orders_value, (SUM(quantOrdered * costEach) * .07) AS Commission FROM Customers INNER JOIN Employees ON Customers.empNumber = Employees.empNumber INNER JOIN Orders ON Customers.custNumber = Orders.custNumber INNER JOIN Order_Info ON Orders.ordNumber = Order_Info.ordNumber GROUP BY Employees.lName, Employees.fName ORDER BY Employees.lName, Employees.fName 

Je souhaite get tous les employés même si leur commission et leurs ventes totales sont égales à zéro, ce que je crois être calculé à partir de NULLS.

Toute aide pour améliorer ma requête serait grandement appréciée!

essaye ça:

 SELECT Employees.lName, Employees.fName, SUM(ISNULL(quantityOrdered,0) * ISNULL(priceEach,0)) AS ttl_orders_value, (SUM(ISNULL(quantOrdered,0) * ISNULL(costEach,0)) * .05) AS Commission FROM Employees LEFT JOIN Customers ON Customers.empNumber = Employees.empNumber LEFT JOIN Orders INNER JOIN OrderDetails ON Orders.ordNumber = OrderDetails.ordNumber ON Customers.custNumber = Orders.custNumber WHERE Employees.workTitle = 'Developer' GROUP BY Employees.lName, Employees.fName ORDER BY Employees.lName, Employees.fName 

Notez, j'ai changé INNER JOIN à LEFT JOIN uniquement pour la table Orders parce que comme vous le dites Employees records devrait être là, ils ne peuvent avoir que des commands liées.

Vous pouvez également avoir besoin d'encapsuler les valeurs NULL priceEach, costEach, quantityOrdered et quantOrdered avec ISNULL ([field_name], 0) pour get des résultats corrects pour les employés n'ayant pas d'ordres.