Select mit Wert und/oder Initialwert

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Select mit Wert und/oder Initialwert

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hallo zusammen,

ich habe gerade folgendes Problem. Ich habe eine Konditionstabelle mit verschiedenen Merkmalen. Diese Merkmale können verschiedene Werte haben oder initial sein.
Wenn ein Merkmalswert existiert soll dieser zurückgeliefert werden, ansonsten der Satz mit Initialwert.

Mal folgendes vereinfachtes Beispiel.

Code: Alles auswählen.

Merkmal   Betrag
<initial> 10,00
A         5,00

Code: Alles auswählen.

SELECT SINGLE * INTO @data(return) FROM tabelle
  WHERE merkmal IN  ( 'A',  '' ).

Oder alternativ

SELECT SINGLE * INTO @data(return) FROM tabelle
  WHERE merkmal =  ( 'A' or  '' ).

Beide Varianten können ja theoretisch beide Werte zurückliefern, da beide gültig sind. Welcher Satz dann zurückgeliefert wird, kann man ja nicht beeinflussen. Oder mache ich hier gerade einen Denkfehler?

Das ganze sollte mit einem Select funktionieren, also nicht erst mit Merkmalswert selektieren und wenn nichts gefunden, dann mit Initialwert selektieren. Ihr habt das doch bestimmt auch schon mal gehabt?

Viele Grüße, Tapio
...entwickelnder Berater...beratender Entwickler

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


Re: Select mit Wert und/oder Initialwert

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Moin Tapio!
Ich dachte gerade, das könnte vielleicht mit WHERE EXISTS funktionieren. Aber das wird nix, weil du dann den DEFAULT Satz nicht als Ergebnis zurückliefern kannst.

Mein Vorschlag: "SELECT INTO TABLE ORDER BY merkmal DESCENDING".Dann kannst du einfach den ersten Eintrag der Tabelle Lesen.

Evtl. funktioniert auch ein SUB Select mit MAX( merkmal ):

Code: Alles auswählen.

select ... where merkmal = select max( merkmal ) ...

Re: Select mit Wert und/oder Initialwert

Beitrag von tm987456 (ForumUser / 72 / 42 / 14 ) »
Hi

so könnte es in einem select mit konkreten Merkmalen funktionieren. Auch eine Reihenfolge kann bestimmt werden (durch die Reihenfolge der WHENs), falls es mehrere Merkmale gibt die geprüft werden sollen, bevor auf Default '' gesprungen wird.

Code: Alles auswählen.

    SELECT SINGLE
      case
        when t2~betrag is not initial then t2~betrag
        when t3~betrag is not initial then t3~betrag
        else t1~betrag
      end as betrag

      from zrz_konditionen as t1
      left outer join zrz_konditionen as t2 on t2~merkmal = 'A'
      left outer join zrz_konditionen as t3 on t3~merkmal = 'B'

      where t1~merkmal EQ ''
      into @Data(betrag).
Gruss
Thomas

Re: Select mit Wert und/oder Initialwert

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hi Thomas,

wenn ich das richtig verstehe, setzt Deine Lösung voraus, daß es eine feste Anzahl an Merkmalserten gibt, oder?

Das mit dem CASE im SELECT kenne ich gar nicht.

Viele Grüße, Tapio
...entwickelnder Berater...beratender Entwickler

Re: Select mit Wert und/oder Initialwert

Beitrag von tm987456 (ForumUser / 72 / 42 / 14 ) »
Hallo Tapio

ja. Einschränkung: A maximum of 10 case distinctions can be nested with CASE.

Gruss
Thomas

Re: Select mit Wert und/oder Initialwert

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
Hi Thomas,

ok, dann ist diese Variante leider nicht nutzbar, da es natürlich mehr Merkmale geben kann und diese sich auch ändern können. Danke trotzdem.

Viele Grüße, Tapio
...entwickelnder Berater...beratender Entwickler

Seite 1 von 1

Vergleichbare Themen

3
Antw.
13977
Views
größten select wert?
von juli » 15.11.2005 15:13 • Verfasst in ABAP® für Anfänger
1
Antw.
4900
Views
Select-Options || Aktuellen Wert auslesen?
von mcbue » 22.06.2006 14:41 • Verfasst in ABAP® für Anfänger
3
Antw.
1532
Views
Select-Option: Default-Wert Decimal
von Dyrdek » 14.12.2016 16:29 • Verfasst in ABAP® Core
8
Antw.
4565
Views
Select-Option Wert in Report ändern
von Dyrdek » 23.11.2016 12:41 • Verfasst in ABAP® Core
8
Antw.
5136
Views
Select-Befehl : Artikel-Liste mit jüngstem Wert
von Asaph » 12.10.2016 11:05 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.