Festen Text mit selektieren

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

Festen Text mit selektieren

Beitrag von Murdock (Specialist / 123 / 58 / 10 ) »
Hallo zusammen,

ich bin neu im Forum und neuerdings mit Abap / SAP unterwegs.

Ich würde gern in einer Select Anweisung einen festen Text als erste Spalte mitselektieren. Bei Oracle würde das so aussehen:

Code: Alles auswählen.

SELECT 'Uhrzeit' AS spalte_1, sysdate FROM dual;
Geht das auch in Abap? Alle bisherigen Versuche blieben erfolglos...

Danke.

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


Re: Festen Text mit selektieren

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Nein.

Du kannst die Tabellenspalte mit einem Text füllen, das würde ich nach dem SELECT machen (guck dir mal MODIFY...WHERE an).

Aber so ein Text wie "Uhrzeit" gehört eigentlich nicht in eine interne Tabelle eines mehrsprachigen Systems, du machst da etwas grundsätzliches falsch. Was genau hast du vor?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Festen Text mit selektieren

Beitrag von Murdock (Specialist / 123 / 58 / 10 ) »
Danke für die Antwort.
ralf.wenzel hat geschrieben: Aber so ein Text wie "Uhrzeit" gehört eigentlich nicht in eine interne Tabelle eines mehrsprachigen Systems, du machst da etwas grundsätzliches falsch. Was genau hast du vor?
"Uhrzeit" war nur ein Beispiel... :D

Also, um ganz vorne anzufangen:
ich möchte Daten aus der mara, marc, makt (...) und noch ein, zwei Z Tabellen selektieren, wobei aus allen Tabellen Abfrageparameter eingegeben werden können (select-options).
Eine große View über alles (was mein erster Gedanke war) oder auch ein grosses Select scheitert am outer join, der hier zwingend notwendig ist.

Nun wollte ich mal versuchen, die betreffenden Matnr aus beispielsweise den Z Tabellen zu selektieren, die den Abfragekriterien entsprechen und die gefundenen Matnr in eine select-options Tabelle der mara-matnr zu schreiben, die ich in einem zweiten Select auswerte.

Also in etwa so (was so nicht funktioniert...)

Code: Alles auswählen.

 SELECT '=' AS SIGN '' AS OPTION  matnr AS LOW  '' AS HIGH
    FROM zmat
    INTO TABLE s_zmatnr
    WHERE zmat-matnr in s_matnr
         AND zmat-code IN s_zcode.

SELECT *
    FROM mara
    INTO wa_mara
    WHERE mara-matnr IN s_zmatnr.

Re: Festen Text mit selektieren

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Ah, du willst also eine Select-Options-Tabelle erzeugen und den festen Wert "IEQ" in jede Zeile reinschreiben ;) Da du ohnehin die dritte Spalte LOW nicht direkt treffen kannst (SELECT in eine Spalte einer internen Tabelle funktioniert nur dann, wenn das von links nach rechts gelesen passt), wirst du das "zu Fuß" machen müssen.

Sprich: Ein SELECT MATNR INTO TABLE .... passt nur, wenn die erste Spalte der Tabelle ein MATNR-Feld ist. Ein SELECT MATNR INTO spalte x OF TABLE gibt's leider nicht. Hab ich auch schon oft vermisst.

Was du machen kannst, ist ein SELECT MATNR INTO CORRESPONDING FIELDS OF TABLE x, dann wird die MATNR in ein Feld der Zieltabelle gestellt, das auch MATNR heißt.

ewx hat hier mal geschrieben, dass die Felder LOW und HIGH einer Selektionsrange nicht LOW und HIGH heißen müssen (korrigier mich, ewx, wenn das nicht stimmt!), man könnte also bei der Deklaration der Selektionstabelle das LOW-Feld MATNR nennen, dann würde der SELECT funktionieren und du müsstest nur noch per MODIFY...WHERE das "IEQ" an den Anfang jeder Zeile schreiben. Alles in der Annahme, dass ich ewx richtig aus dem Gedächtnis zitiere.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Festen Text mit selektieren

Beitrag von Murdock (Specialist / 123 / 58 / 10 ) »
Danke, ich werde mal mein Glück versuchen :D

Re: Festen Text mit selektieren

Beitrag von ewx (Top Expert / 4843 / 311 / 638 ) »
ewx hat hier mal geschrieben, dass die Felder LOW und HIGH einer Selektionsrange nicht LOW und HIGH heißen müssen (korrigier mich, ewx, wenn das nicht stimmt!), man könnte also bei der Deklaration der Selektionstabelle das LOW-Feld MATNR nennen, dann würde der SELECT funktionieren und du müsstest nur noch per MODIFY...WHERE das "IEQ" an den Anfang jeder Zeile schreiben. Alles in der Annahme, dass ich ewx richtig aus dem Gedächtnis zitiere.[/quote]
Korrektur: Sie müssen nicht den gleichen Typ haben, wie das zu selektierende Feld. Um MATNR zu selektieren, kann man auch eine RANGES-Tabelle vom Typ CHAR80 nehmen.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Murdock


Re: Festen Text mit selektieren

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Ok, dann fällt das mit den CORRESPONDING FIELDS weg.

Danke, Enno.

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
Murdock

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Festen Text mit selektieren

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
ralf.wenzel hat geschrieben:Sprich: Ein SELECT MATNR INTO TABLE .... passt nur, wenn die erste Spalte der Tabelle ein MATNR-Feld ist. Ein SELECT MATNR INTO spalte x OF TABLE gibt's leider nicht. Hab ich auch schon oft vermisst.
Hallo Ralf,
das von dir gesuchte Konstrukt gibt es sehr wohl - das von Murdock gesuchte leider nicht.
Ein winziges Beispiel:

Code: Alles auswählen.

REPORT.

SELECT-OPTIONS: s_mandt FOR syst-mandt.
DATA: wa_mandt LIKE LINE OF s_mandt. " Wer mag schon noch Kopfzeilen...

INITIALIZATION.
  SELECT mandt AS low
    INTO CORRESPONDING FIELDS OF TABLE s_mandt
    FROM t000.
  wa_mandt(3) = 'IEQ'.
  MODIFY s_mandt FROM wa_mandt TRANSPORTING sign option WHERE table_line <> 'IEQ'.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Festen Text mit selektieren

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
black_adept hat geschrieben:
ralf.wenzel hat geschrieben:Sprich: Ein SELECT MATNR INTO TABLE .... passt nur, wenn die erste Spalte der Tabelle ein MATNR-Feld ist. Ein SELECT MATNR INTO spalte x OF TABLE gibt's leider nicht. Hab ich auch schon oft vermisst.
Hallo Ralf,
das von dir gesuchte Konstrukt gibt es sehr wohl - das von Murdock gesuchte leider nicht.
Ein winziges Beispiel:

Code: Alles auswählen.

REPORT.

SELECT-OPTIONS: s_mandt FOR syst-mandt.
DATA: wa_mandt LIKE LINE OF s_mandt. " Wer mag schon noch Kopfzeilen...

INITIALIZATION.
  SELECT mandt AS low
    INTO CORRESPONDING FIELDS OF TABLE s_mandt
    FROM t000.
  wa_mandt(3) = 'IEQ'.
  MODIFY s_mandt FROM wa_mandt TRANSPORTING sign option WHERE table_line <> 'IEQ'.
Ich hab mich IMMER gefragt, warum man diese Alias in "normalen" selects brauchen kann. Jetzt weiß ich es. Ohne Witz.

Ehrlicher Dank

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1394
Views
0
Antw.
1063
Views
Lohnarten mit festen Betrag zuordnen
von Adik91 » 30.03.2022 11:19 • Verfasst in Human Resources
5
Antw.
16823
Views
Zeichen ab einer festen stelle auslesen
von Gast » 10.01.2006 11:58 • Verfasst in ABAP® für Anfänger
10
Antw.
10499
Views
SAPScript: INCLUDE Text nach Stat. text
von Chrisu » 09.08.2005 11:06 • Verfasst in Basis
1
Antw.
6702
Views
Change Text(Header Text) of each: cl_salv_table
von jamiguel77 » 31.12.2014 20:27 • Verfasst in ABAP® für Anfänger

Ü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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 71
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1718
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8323