2016-10-28 2 views
0

ich habe Zahlungen Tabelle, wenn jemand kauft Artikel i 1 hinzufügen Datensatz mit Betrag und das DatumGruppe mysql Ergebnisse nach Tagen mit LEFT JOIN

payments table

einige Käufer brauchen zusätzliche Dienstleistungen mit Artikel (Versand-Unterstützung ...) so habe ich Dienste Tabelle mit Preis der Dienstleistung und payment_id

Services Table

i Ergebnisse wie diese

wollen
date - Sum(payments) - Sum(services) 
01-01-2016 - 200   -  100 
02-01-2016 - 200   -  100 
03-01-2016 - 100   -  0 

ich versucht habe diese Abfrage

SELECT DATE(FROM_UNIXTIME(date)),SUM(amount),SUM(price) 
FROM payments 
LEFT JOIN services ON payments.id = service.payment_id 
GROUP BY DATE(FROM_UNIXTIME(date)) 

kehrt aber duplizierte Werte Dank im Voraus

Antwort

2

Sie benötigen eine Unterabfrage verwenden, die die beiden Tabellen und summiert die Preise für jede Zahlung verbindet. Dann können Sie das Ergebnis nach Datum gruppieren.

SELECT date, SUM(payments), SUM(services) 
FROM (
    SELECT DATE(FROM_UNIXTIME(p.date)) AS date, p.amount AS payments, IFNULL(SUM(s.price), 0) AS services 
    FROM payments AS p 
    LEFT JOIN services AS s ON p.id = s.payment_id 
    GROUP BY p.id 
) AS subquery 
GROUP BY date 
+0

danke für Ihre Hilfe aber Gesamtpreis in Ihrer Abfrage gibt NULL zurück !! –

+0

Können Sie mit Beispieldaten eine SQL-Datenbank erstellen oder Ihre Bilder durch Text ersetzen, damit ich sie kopieren und in eine Demo einfügen kann? – Barmar

+0

Ich sah das Problem, ich habe die Antwort geändert. – Barmar