Dieser Befehl liest ja alle Banner aus, auch die die im Reload sind und natürlich auch wesentlich mehr, als du maximal anzeigen lässt.

Wenn du ihn manuell in der Datenbank ausführst, müsste das mit dem ORDER BY auch passen, aber die Datensätze werden dann ja noch weiterverarbeitet.

Sprich geprüft, ob der Banner im Reload ist, wenn nicht, angezeigt, und das solange bis MAXBANNER erreicht ist.

Ich würde dir an sich raten, das so umzustellen, dass nur ein Query benötigt wird, der gleich nur Banner ausliest, die nicht im Reload sind, und nur soviele, wie angezeigt werden sollen (siehe VMS1.2.3).

Wenn du dabei bleiben willst, wäre der Teil mit der "Weiterverarbeitung" auch noch interessant.

Alternativ mal die Tabelle vms_gebuchte_werbung prüfen und/oder reparieren lassen, evtl ist da nur was mit den Indizes durcheinander, so dass die Sortierung nach dem Verdienst nicht korrekt arbeitet.