Ich brauche Ihre Hilfe, ich habe zwei Tabellen Verkauf und Kauf, meine Anforderung ist, das Ergebnis von Verkauf und Kauf in der gleichen Spalte, wenn der Monat ist gleich. Ich verwende den folgenden Code.Php Wie UNION Ergebnis in der gleichen Spalte
<?php
$stmt = $db->prepare("SELECT SUM(amount) as amount,
DATE_FORMAT(saledate,'%M %Y') as saledate,
null as recovery
FROM `advertisercv` GROUP BY DATE_FORMAT(saledate, '%M %Y')
UNION all
SELECT null,
DATE_FORMAT(date,'%M %Y') as date,
SUM(amount)
FROM `paymentsrec`
GROUP BY DATE_FORMAT(date, '%M %Y')");
?>
Ergebnis:
S.No Month Sale Recovery
1 April-2016 10000
2 April-2016 4000
2 January-2017 5000
3 January-2017 3000
erwartete Ergebnis ist:
S.No Month Sale Recovery
1 April-2016 10000 4000
2 January-2017 5000 3000
Können Sie Ihr Tabellenschema angeben? Ist Saledate vom Typ TIMESTAMP oder DATETIME? Scheint auch, dass Ihr Code anfällig für SQL-Injection ist, sollten Sie vorbereitete Anweisungen berücksichtigen. – lloiacono
Anstelle einer Union sollten Sie ein JOIN-Datum und jede andere Spalte verwenden, die die Zeilen in Beziehung setzt. (Kundennummer?) –