Ich bin ziemlich neu in MySQL und brauche Hilfe, um eine Abfrage abzuschließen.Verbinden Sie 2 Abfragen für die gleiche Tabelle und fügen Sie eine Spalte zum Ergebnis hinzu.
Ich habe 2 separate Abfragen, die ich in nur einer Abfrage, die ich in PHP verwenden kann, benötigt.
Ich verwende die folgende SQL, um die Anzahl der Datensätze in einer Tabelle mit dem Namen 'Import' abzurufen, die ein Job_Completed_Date kleiner oder gleich dem Job_SLA_Due_Date haben.
Meine Where-Klausel prüft auf Jobs, die in den letzten 6 Monaten in der Import-Tabelle ausgeführt wurden.
SELECT Year(job_completed_date),
Month(job_completed_date),
Count(*) AS Completed_On_Schedule
FROM import
WHERE job_completed_date >= Last_day(Now()) + interval 1 day - interval 6 month
AND job_completed_date <= job_sla_due_date
AND (job_status = 'C'
OR job_status = 'C2'
OR job_status = 'C8')
GROUP BY Year(job_completed_date),
Month(job_completed_date)
ORDER BY job_completed_date ASC
Das Ergebnis Ausgang ist in Ordnung und erzeugt die folgenden ....
Year Month Completed_On_Schedule
2017 3 1155
2017 4 838
2017 5 881
2017 6 1095
2017 7 1073
2017 8 295
Meine zweite Abfrage ist ähnlich die gleiche Tabelle verwenden, aber ich bin für die Gesamtzahl der Arbeitsplätze, die abgeschlossen sind in den letzten 6 Monaten, aber ich mache mir keine Sorgen um den Job_SLA_Due_Date. Die SQL ich verwende ist .......
SELECT Year(job_completed_date),
Month(job_completed_date),
Count(*) AS Total_Completed
FROM import
WHERE job_completed_date >= Last_day(Now()) + interval 1 day - interval 6 month
AND (job_status = 'C'
OR job_status = 'C2'
OR job_status = 'C8')
GROUP BY Year(job_completed_date),
Month(job_completed_date)
ORDER BY job_completed_date ASC
Das Ergebnis Ausgang wird als erwartet und erzeugt die folgenden .....
Year Month Total_Completed
2017 3 1441
2017 4 1101
2017 5 1144
2017 6 1334
2017 7 1211
2017 8 311
Was ich jetzt brauchen, ist eine Ausgabe wie diese ......
Year Month Completed_On_Schedule Total_Completed %_On_Schedule
2017 3 1155 1441 80.1
2017 4 838 1101 76.1
2017 5 881 1144 77
2017 6 1095 1334 82
2017 7 1073 1211 88.6
2017 8 295 311 94.8
Also kurz gesagt, die ich brauche, um meine zwei Abfragen zusammen und fügen Sie eine weitere Spalte namens% _Completed_On_Schedule beizutreten ist der Anteil der Arbeitsplätze im Zeitplan dh der Prozentsatz abgeschlossen, dass der Completed_On_Schedul Die Spalte gehört zur Spalte Total_Completed.
Jede Hilfe wird wirklich geschätzt.
Grüße
Alan
mit der Summe statt der Zählung zum Abrufen der nach Zeitplan abgeschlossenen Zählung funktioniert auch. – Acewin
@Acewin Ich füge die 'JOIN'-Version hinzu, denn selbst wenn es für diesen Fall nicht nötig ist, ist es das, wonach OP fragt, und vielleicht wird es für ihn in einer anderen Situation nützlich sein. Ich mag es nicht, 'SUM (1/0)' zu benutzen, um zu zählen. Wenn Sie zählen, verwenden Sie 'COUNT()' –
yeah realisierte ich. Deshalb habe ich meinen Kommentar aktualisiert. – Acewin