Vorweg: Ich habe keine Ahnung, was COPA-Zyklen sind. Aber Du hast den Kern Deines Problems ja ganz gut beschrieben, so dass ich versuche, trotzdem zu helfen.
Solange Du nur von-bis-Intervalle brauchst und nicht auf alle anderen möglichen Spezialitäten vorbereitet sein musst, die RANGES-Tabellen so anbieten (Exclude-Option, zusätzliche Einzelwerte etc.), sollte sich das mit überschaubarer Komplexität machen lassen. Du musst doch einfach nur einen LOOP über die eingegebenen Intervalle machen und für jeden davon einen LOOP über die Zyklus-Segmente machen. In diesem inneren LOOP nimmst Du dann einen NMAX auf den Intervallbeginn und einen NMIN auf den Endwert. Am Ende hast Du eine RANGES-Tabelle der Teilintervalle.
Ich bin nicht sicher, ob ich Dein Problem gut genug verstanden habe, dass das Obenstehende funktioniert. Aber ich bin überzeugt, dass es das von Dir beschriebene Performance-Problem nicht gibt, wenn Du performant programmierst:
Jetzt müsste ich zuerst alle Produktgruppen R* bis T* auflösen in der Zugehörigen Tabelle, dann jeden Eintrag einzeln gegen den ebenfall aufgelösten Segment-Range AAA - ZZZ prüfen?
Richtig. Dafür machst Du Dir passend sortierte oder noch besser gehashte interne Tabellen, bei denen Du Dir gut überlegst, was der richtige (effiziente) Schlüssel ist und die Du mit einem dicken SELECT aus der Datenbank befüllst. Bei gehashten Tabellen ist die Suchzeit ja noch nicht mal von der Zahl der Einträge in der Tabelle abhängig
(jedenfalls nicht nennenswert). Und dann rast Du da durch und gleichst das ab. Das halte ich nicht für ein Problem. Lahm wird es nur, wenn Du mit Standardtabellen arbeitest.