"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 / 1 / 0 / 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 :)


Re: "Dynamische" Datenbankabfrage

Beitrag von PeterPaletti (Specialist / 142 / 24 / 27 ) »
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 / 1252 / 26 / 306 ) »
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

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

DB-Update setzt kein Subrc
vor 7 Stunden von ewx gelöst 6 / 56
Zukunft ABAP?
vor 16 Stunden von mbsr 1 / 32

Vergleichbare Themen

Datenbankabfrage
von SLUK » 19.02.2018 18:48
Datenbankabfrage mit inner join
von egge » 05.02.2008 12:12
Problem bei der Datenbankabfrage
von vman » 16.05.2007 10:00
Datenbankabfrage einschränken erzet = 8 bis 18 Uhr
von thomasxy » 04.01.2008 10:36
Datenbankabfrage vor einer Reservierung
von SYsa » 04.07.2017 12:46