Ich habe zwei Abfragen, die Daten aus der gleichen Tabelle erhält. Die erste Abfrage erhält Daten mit dem Status "Bezahlt", während die zweite Abfrage die Rechnung für den aktuellen Monat erhält.Konvertieren von Zeilen in Spalten - Abfrage von derselben Tabelle
erste Abfrage (Ruft vorherige bezahlte Rechnung):
SELECT
date as 'datePd', invAmt as 'invAmtPd', refNum as 'refNumPd'
FROM inv
WHERE cst = "Customer"
AND status = "Paid"
Ausgabe dieser ist:
| datePd | invAmtPd | refNumPd |
| 11-20-2016 | 1500 | 0001 |
| 12-20-2016 | 5500 | 0002 |
zweite Abfrage (Ruft die letzte Rechnung für den aktuellen Monat)
SELECT
date as dateCur, refNum as 'refNumCur', invAmt as 'invAmtCur'
FROM inv
WHERE cst = "Customer" AND YEAR(date) = "2017" AND MONTH(date) = "01"
Ausgabe davon ist:
| dateCur | refNumCur | invAmtCur |
| 2017-01-05 | 0003 | 2500 |
Ich versuche, diese Ausgabe zu erreichen, in der die Spalten aus der vorherigen Abfrage und die Daten aus der aktuellen Abfrage angezeigt werden.
| datePd | invAmtPd | refNumPd | refNumCur | invAmtCur |
| 11-20-2016 | 1500 | 0001 | 0003 | 2500 |
| 12-20-2016 | 5500 | 0002 | | |
Wie wäre der beste Weg für mich, diese Ausgabe zu erreichen? Ich versuchte mit UNION, aber das Ergebnis der zweiten Abfrage nur an den unteren Rand ...
Hinweis: Die vorherigen bezahlten Beträge sind vom letzten Jahr datiert, während die neueste ist für 2017, wenn es möglich wäre gut, wenn der vorherige auch ausgegeben wird.
Ich würde PHP nur (oder was auch immer Sie Codierung in) anstelle von MySQL, dass die Formatierung erhalten. Es gibt einfach keine großartige Möglichkeit, dies in MySQL zu tun, und ich sehe keinen Grund, warum Sie das möchten. – CptMisery