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 / 4849 / 313 / 642 ) »
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 / 15 ) »
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 / 15 ) »
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.
14347
Views
größten select wert?
von juli » 15.11.2005 15:13 • Verfasst in ABAP® für Anfänger
3
Antw.
1701
Views
Select-Option: Default-Wert Decimal
von Dyrdek » 14.12.2016 16:29 • Verfasst in ABAP® Core
1
Antw.
5072
Views
Select-Options || Aktuellen Wert auslesen?
von mcbue » 22.06.2006 14:41 • Verfasst in ABAP® für Anfänger
8
Antw.
4776
Views
Select-Option Wert in Report ändern
von Dyrdek » 23.11.2016 12:41 • Verfasst in ABAP® Core
8
Antw.
5477
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

Aktuelle Forenbeiträge

Regex in where
vor 16 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

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

Regex in where
vor 16 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953