Ich ging durch mehrere Themen hier darüber reden, aber ich konnte es nicht zum Laufen bringen. Für jeden "Topf" möchte ich die Anzahl der Zahlungen sowie die volle Provision (Summe aller Zahlungsprovisionen) in Bezug auf diesen Topf erhalten.Mysql Abfrage - Operand sollte 1 Spalte enthalten
SELECT id, id_user,
(SELECT IFNULL(SUM(amount), 0) AS collectedA,
IFNULL(SUM(commission), 0) AS commission
FROM payment AS pay WHERE pay.id_pot = pot.id AND pay.stat = 1) FROM pot
Oben gibt mir den Fehler im Titel erwähnt. Ich verstehe, dass wir zwei Spalten mit dieser Art von Unterabfrage nicht auswählen können. Ich habe versucht, durch LEFT OUTER JOIN zu gehen, konnte es aber nicht zur Arbeit bringen.
SELECT id, id_user,
IFNULL(SUM(payment.amount), 0) AS collectedA,
IFNULL(SUM(payment.commission), 0) AS commission
FROM pot LEFT OUTER JOIN payment ON payment.id_pot = pot.id AND payment.stat = 1
Aber das gibt mir seltsame Ergebnisse ...
Danke Barma r. Wie viel besser ist das im Vergleich zu Giorgos 'Lösung? Ich muss sagen, ich bin ein bisschen besorgt darüber, zu viel für nur einen kleinen Teil der Liste zu berechnen. – gotye
Wenn Sie eine 'WHERE'-Klausel haben, sollten Sie die Berechnung der Beträge für nicht zusammenhängende Zahlungen vermeiden. – Barmar