Ich versuche, eine Abfrage erstellen, die eine Berechnung in einer Unterabfrage, die die SUMME-Funktion und eine Gruppe von benötigt. Meine Abfrage gibt den Fehler "Unterabfrage gibt mehr als 1 Zeile zurück". Im Wesentlichen versuche ich den Betrag "fällig" für jede Bestellung zurückzugeben. Wenn die Gesamtsumme der Bestellung höher ist als die Summe von total_collected (für diese order_id) aus der Zahlungstabelle, wird der fällige Betrag fällig. Hier ist die Abfrage:Mysql Unterauswahl mit SUM() und Gruppe von
SELECT o.order_id
, o.server
, o.subtotal
, o.discount
, o.tax, o.total
, (SELECT (o.total - SUM(p.total_collected))
from orders o
join payments p
on o.order_id = p.order_id
group by p.order_id) as 'Due'
FROM orders o
join payments p
on o.order_id = p.order_id
WHERE...;
Ich kann nicht enthalten ‚p.order_id‘ im Unter wählen, weil es nur eine Spalte enthalten soll. Ich verstehe, warum ich den Fehler erhalte, ich weiß nur nicht, wie ich die Subauswahl dazu bringen kann, die SUMME nur pro Order_ID durchzuführen.
Können Sie Ihre erwartete Ausgabe enthalten? –
Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple-sql- Abfrage – Strawberry