"Dynamische" Datenbankabfrage

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

"Dynamische" Datenbankabfrage

Beitrag von Krypt1k0n (ForumUser / 9 / 2 / 0 ) »
Hallo zusammen,

ich habe folgendes Problem:

Für ein Übungsbeispiel soll ich einen Selektionsbildschirm definieren. So weit so gut. Dieser Bildschirm hat einen Parameter und 4 weitere Eingabefelder in Form von SELECT-OPTIONS, von denen kein einziges ein Pflichtfeld ist.
Nun soll ich von einer Datenbank bestimmte Datensätze abfragen und in Form einer einfachen Liste auf dem Bildschirm ausgeben.

Genau jetzt kommt meine Schwierigkeit: Diese Datenbankabfrage soll "dynamisch" sein. Das bedeutet, wenn alle Felder leer sind und der User auf F8 drückt sollen ohne irgendwelche WHERE-Bedingungen einfach alle Datensätze ausgelesen werden. Hat der User in ein Feld etwas eingetragen, dann soll nach diesem Kriterium selektiert werden. Ich habe 5 Eingabefelder die ja entweder leer oder gefüllt sein können.

Jetzt die Frage: Gibt es eine Möglichkeit im SELECT-Block eine If-Bedingung einzufügen, die prüft ob eines der Felder leer ist? Ansonsten müsste ich (laut meiner Überlegung) alle 32 Möglichkeiten überprüfen, in welchen Feldern etwas drinnesteht und dann je nachdem im WHERE-Teil die Bedingung setzen. Das ist ziemlich viel Zeitaufwand, und wir Programmierer sind ja doch eher faul ;)
Oder gibt es da eine ganz andere Möglichkeit?


Vielen Dank schonmal für eure Hilfe :)

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


Re: "Dynamische" Datenbankabfrage

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Mach doch einfach eine Range zum Parameter, dann kannst du mit einem Select und where...in...Bedingungen alles erschlagen

Re: "Dynamische" Datenbankabfrage

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Ich sehe hier überhaupt keine Notwendigkeit etwas abzufragen.
wenn man 4 mal Select-options plus einmal Parameters hat, kann man das einfach am select verarbeiten.

Code: Alles auswählen.

Select * from tabelle where SelOpt1 IN so_1 and SelOpt2 in so_2 .... 
and p_par eq 'X'.
Eine Prüfung auf leere SelOpts brauche ich nur, wenn ich gerade verhindern möchte,
das die "Ganze Datenbank" gelesen werden soll.

gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1199
Views
Datenbankabfrage
von SLUK » 19.02.2018 18:48 • Verfasst in ABAP® für Anfänger
1
Antw.
1271
Views
Datenbankabfrage mit inner join
von egge » 05.02.2008 12:12 • Verfasst in ABAP® für Anfänger
9
Antw.
4216
Views
Problem bei der Datenbankabfrage
von vman » 16.05.2007 10:00 • Verfasst in ABAP® für Anfänger
4
Antw.
2120
Views
Datenbankabfrage vor einer Reservierung
von SYsa » 04.07.2017 12:46 • Verfasst in ABAP® für Anfänger
2
Antw.
1581
Views
Datenbankabfrage einschränken erzet = 8 bis 18 Uhr
von thomasxy » 04.01.2008 10:36 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 3 Tagen von Bright4.5 1 / 775
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2395
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8982