J'ai deux tables, Client, et Factures, je dois énumérer tous les clients avec leur crédit restant. J'essaie de soustraire la sum de la colonne Facture montant de la colonne CreditLimit
pour me donner le crédit restant?
Ceci est ma requête jusqu'à présent
DECLARE @CreditRemaining INT SELECT @CreditRemaining = (c.CreditLimit - SUM(i.Amount)) FROM Customer c INNER JOIN Invoices i on c.ID = i.customerId
Utilisez une table dérivée pour le montant de la facture SUM()
, puis JOIN
au client:
DECLARE @CreditRemaining INT SELECT @CreditRemaining = (c.CreditLimit - TotalSpent) FROM Customer c INNER JOIN (SELECT SUM(Amount) TotalSpent, CustomerID FROM Invoices GROUP BY CustomerID) i ON i.CustomerID = c.ID
Comme d'autres l'ont mentionné, cela suppose que vous limitiez votre sélection à un client.
Pour tous les clients, utilisez simplement un select:
SELECT C.Name, (c.CreditLimit - TotalSpent) CreditRemaining FROM Customer c INNER JOIN (SELECT SUM(Amount) TotalSpent, CustomerID FROM Invoices GROUP BY CustomerID) i ON i.CustomerID = c.ID GROUP BY C.Name