SELECT-OPTIONS auf DB-Tabelle mit von bis

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von msfox (Specialist / 364 / 56 / 74 ) »
Ich habe eine DB-Tabelle mit zwei Spalten "von" und "bis".
Der Anwender gibt nun über eine SELECT-OPTIONS eine Bereich oder eben Einzelwerte ein.
Wie muss ich das SELECT auf die Tabelle gestalten, damit ich die Einträge bekommen, bei den die Eingabe innerhalb des "von" und "bis" ist?


Was nicht geht - mit dem IN-Operator auf jeden Spalte "von" and "bis" prüfen.
Umständlich wäre, die Werte/Zeilen der SELECT-OPTIONS einzeln mit mehreren SELECT zu verwenden.
Einfach wäre, NO-EXTENSION bei der SELECT-OPTIONS zu verwenden. Dann könnte der Anwender nur einen Bereich eingeben und ich kann auch Zeitraumüberschneidung abfragen.
ABER, die SELECT-OPTIONS soll noch für andere Abfrage genutzt werden, wo die Extension gewünscht ist.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Eine einfach Lösung wird es dafür nicht geben.
Du willst ja im Grunde zwei Bereiche miteinander vergleichen.

Ich habe mal soetwas ähnliches versucht und wollte mit einer Eingabe eines Zeistempel-Zeitraums auf getrennte Datum- und Uhrzeitfelder abfragen. Da lassen sich schlicht und ergreifend nicht alle Kombinationen die in Select-Options möglich wären, damit abbilden.

Ich würde daher vorschlagen, die Möglichkeiten der Select-Option mit RS_SELECTION_RESTRICT derart einzuschränken, dass du mit den dann noch vorhandenen Möglichkeiten ein einigermaßen brauchbares Select-Statement hinbekommst. Z.B. könntest du mit nur EQ oder BT (nur Including) zwei verschiedene Where Statments aufbauen indem du die entsprechenden Werte aus der Select-Option in einen eigenen Range aufnimmst.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
msfox

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Das ist doch quatsch, dem Anwender so eine Selektion anzubieten?!
Warum sollte der Anwender z.B. bei VON "1.5. - 15.5." und bei BIS "1.12.; 2.12.; 5.12." eingeben?
Dann wäre das eine Selection BETWEEN 1.5. AND 5.12.
Dementsprechend wäre das sinnvollste zwei entsprechende PARAMETER VON und BIS, die den Zeitraum eingrenzen.
Oder übersehe ich was?

Re: SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Das ist doch quatsch, dem Anwender so eine Selektion anzubieten?!
Warum sollte der Anwender z.B. bei VON "1.5. - 15.5." und bei BIS "1.12.; 2.12.; 5.12." eingeben?
Dann wäre das eine Selection BETWEEN 1.5. AND 5.12.
Dementsprechend wäre das sinnvollste zwei entsprechende PARAMETER VON und BIS, die den Zeitraum eingrenzen.
Oder übersehe ich was?

Re: SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von msfox (Specialist / 364 / 56 / 74 ) »
Geht zwar um Nummern, aber bleiben wir bei deinem Beispiel:
In der DB-Tabelle steht

VON BIS
1.5. 30.06.
1.8. 15.09.
1.12. 31.12.

Der Anwender gibt jetzt vor welche Zeiträume er haben möchte.
I BT 15.05. - 01.07.
I EQ 01.12.
I EQ 02.12.

Gefunden würde der erste und dritt Zeitraum aus der DB.
..
Dementsprechend wäre das sinnvollste zwei entsprechende PARAMETER VON und BIS,
Ja, eine SELECT-OPTIONS mit NO-EXTENSIONS. (dann sieht die Anordnung der Felder besser aus.
ABER: Die SELECT-OPTIONS soll noch für andere DB-Selektionen gebraucht werden, wo die Extensions gewünscht sind.
--
...es ist "nur" ein Korrekturreport :).
Also Notlösung hab ich jetzt zwei SELECT-OPTIONS angeboten.
Die eine für die eine Korrektur und die andere für die andere Korretur.
...ja man könnte auch zwei Reports machen. Aber das zieht immer so einen "Rattenschwanz" nach sich.

Re: SELECT-OPTIONS auf DB-Tabelle mit von bis

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Du willst eine SELECT-OPTION, die für EIN Feld gilt, auf ZWEI Felder anwenden.
Dafür müsstest du IMO die SELECT-OPTION interpretieren.

Code: Alles auswählen.

WHERE ( von GE 15.05. AND bis LE 01.07. )
       OR ( von EQ 01.12. AND bis LE 31.12.9999 )
       OR ( von EQ 02.12. AND bis LE 31.12.9999 ).
Excluding würde ich von vornherein ausschließen.

Seite 1 von 1

Vergleichbare Themen

7
Antw.
2992
Views
Select-Options in DB-Tabelle abspeichern
von gs3rr4 » 23.06.2015 14:45 • Verfasst in ABAP® für Anfänger
3
Antw.
6768
Views
Übergabe einer SELECT-OPTIONS Tabelle an FORM Routine
von m4rkusr » 20.09.2006 09:04 • Verfasst in ABAP® Core
0
Antw.
2272
Views
select-options depend on select-options.
von dragospirnut1 » 19.07.2017 09:54 • Verfasst in ABAP® Core
10
Antw.
6668
Views
2 Select-Options zu einem für Select zusammenfügen
von manuk » 23.03.2005 11:02 • Verfasst in ABAP® Core
4
Antw.
18652
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 2 Stunden von DeathAndPain gelöst 20 / 2409
Zeilenumbrüche ersetzen
vor 22 Stunden von ralf.wenzel 6 / 193
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1569

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 2 Stunden von DeathAndPain gelöst 20 / 2409
Zeilenumbrüche ersetzen
vor 22 Stunden von ralf.wenzel 6 / 193
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1569

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 636
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2262
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8851