J'ai deux tables que je souhaite participer à laisse dire Tableau A et Tableau B. Le tableau B a de nombreuses lignes à table A, tableau B contient des prix (efficacement d'un panier). Donc, ce que je veux, c'est que tous les enregistrements du tableau A et la somme du prix du tableau B. J'ai essayé Cependant, cela ne fait évidemment pas comme je le souhaite, cela finit par la somme totale de tous ACH_SELL (donc un enregistrement est renvoyé). Quelqu'un voudrait-il me proposer une solution qui aiderait? À l'heure actuelle, je le fais de manière programmative et je suis sûr que cela pourrait être fait dans SQL? P> P>
5 Réponses :
Vous devez D'autres RDBMSS insisteraient pour vous avoir la liste de colonnes entière dans le groupe groupe par code> quelque chose si vous ne voulez pas juste un seul résultat. Éventuellement? par code> mais mysql pas. P> p>
select a.*, sum(b.ach_sell) as sum_column
from bookings a
left join pricing_line b
on b.bookings = a.id
group by a.id
Every time you use funcions of aggregation (SUM, COUNT, MIN, MAX, AVG) you need to group by some other set of fields (tipically the id) on which you don't apply an aggregation function.
Groupe sur les champs de la table des réservations:
select a.this, a.that, sum(b.ach_sell) from bookings a left join pricing_line b on b.bookings = a.id group by a.this, a.that
J'ajouterais "Somme (b.ach_sell) comme sommaire_column" pour une adressage plus facile.
Votre direction a raison, ajoutez simplement un groupe par clause pour séparer les A.ID, quelque chose comme ceci:
Si vous avez de nombreuses colonnes dans SELECT.
Comme ceci: P>
SELECT
co.checkOutOrderID,
com.companyCode,
sd.serviceDispatchCode,
cu.customerName,
com.companySimp,
ISNULL(SUM (sdlp.partsModelPrice * sdlp.partsModelNum), 0) AS total
FROM
checkoutorder co
LEFT JOIN
servicedispatchorder sd ON sd.serviceDispatchID = co.serviceDispatchID
LEFT JOIN
customer cu ON cu.customerID = co.customerID
LEFT JOIN
company com ON com.companyID = co.companyID
LEFT JOIN
servicedispatchlinkparts sdlp ON sdlp.serviceDispatchID = sd.serviceDispatchID
GROUP BY
sd.serviceDispatchID, co.checkOutOrderID,
com.companyCode, sd.serviceDispatchCode,
cu.customerName, com.companySimp
Est-il pratique de faire une union?