Ich verwende die Grafikberichte für die Auswahl unten. Die MySQL-Datenbank hat nur die aktiven Datensätze in der Datenbank. Wenn also keine Datensätze von X Stunden bis Y Stunden in der Datenbank sind, gibt diese Auswahl nichts zurück. Also in meinem Fall, ich brauche, wählen Sie die Rückkehr Paypal Null-Werte als auch die keine Aktivität in der Datenbank war. Und ich verstehe nicht, wie man die UNION
Funktion verwendet oder neu erstellt, um die Nullwerte zu erhalten, wenn nichts in der Datenbank im Zeitintervall aufgezeichnet wurde. Kannst du bitte helfen?Wie gibt man Nullwerte zurück, wenn im Zeitintervall nichts geschrieben wurde?
select STR_TO_DATE (DATE_FORMAT(`acctstarttime`,'%y-%m-%d %H'),'%y-%m-%d %H')
as '#date', count(*) as `Active Paid Accounts`
from radacct_history where `paymentmethod` = 'PayPal'
group by DATE_FORMAT(`#date`,'%y-%m-%d %H')
Wenn ich die wählen die Ausgabe ausgeführt ist:
Aber ich brauche, wenn es keine Werte zwischen 2016.07.27 07.00.00 und 2016.07.28 sind 11.00.00, dann in jeder Stunde sollte es zeigen Null aktiven Konten wie folgt aus:
Needed output with no values every hour
ich so erstellt haben unten wählen, aber es ist nicht setze zu jeder Stunde den Nullwert wie ich brauche. die große Lücke zwischen dem 12 Sep und 13 Sep sowieso, aber es sollte die Nullwerte jede Stunde sein
(wählen Sie STR_TO_DATE (DATE_FORMAT (acctstarttime
, '% y-% m-% d% H'), '% y-% m-% d% H ') als '#date', count (paymentmethod) als Active Paid Accounts
von radacct_history wo paymentmethod
<> '' Gruppe von DATE_FORMAT (#date
,' PayPal% y-% m-% d% H ')) union ALL (wählen Sie STR_TO_DATE (DATUM_FORMAT (acctstarttime
,'% y-% m-% d% H '),'% y-% m-% d% H ') als' #date ‘, 0 als Active Paid Accounts
von radacct_histo ry wo paymentmethod
<> Gruppe 'PayPal' von DATE_FORMAT (#date
, '% y-% m-% d% H'));
Beispieldaten und gewünschte Ausgabe wird sehr hilfreich sein, um die entsprechende Antwort bald zu bekommen. – Susang
Ich habe Ausgänge in meiner Antwort hochgeladen. Danke –