Select * und Select von einzelnen Werten zugleich

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

Select * und Select von einzelnen Werten zugleich

Beitrag von StefanJue (ForumUser / 4 / 0 / 0 ) »
Hallo Leute,
mein Problem: Ich möchte einen SELECT über die likp, lips und vbuk machen. Dabei möchte ich bei der likp und lips alle felder selektieren, bei der vbuk jedoch nur einige ausgewählte. Alle Felder aller Tabellen per "globales" SELECT * will ich nicht machen.

Also etwa so in der Art:

SELECT lk~*
ls~*
vu~koquk
FROM ( likp AS lk INNER JOIN lips AS ls
ON lk~vbeln = ls~vbeln )
INNER JOIN vbuk AS vu
ON lk~vbeln = vu~vbeln
INTO ......
WHERE .......


Ist dies irgendwie möglich, bzw. wie lautet die syntax für solch einen fall?

Vielen dank für eure antworten..


mfg
Stefan

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


Beitrag von se80 (ForumUser / 21 / 0 / 0 ) »
Hallo Stefan,

da es sicher zu mühsam und fehleranfällig wäre, die Felder der LIKP und LIPS einzeln aufzuzählen, empfehle ich Dir, die zu selektierenden Felder in einen String oder eine interne Tabelle zu stellen und dynamisch beim SELECT anzugeben.

Die Felder lassen sich einfach dynamisch mittels RTTI ermitteln. Doppelte Feldnamen (z.B. LIKP/LIPS-ERNAM) müssen selbstverständlich unbeachtet bleiben oder mit AS umbenannt werden.

Beispiel:

Code: Alles auswählen.

PROGRAM.
*----------------------------------------------------------------------*
DATA:
  BEGIN OF xdata,
    trkorr   TYPE e070-trkorr,
    trstatus TYPE e070-trstatus,
    pgmid    TYPE e071-pgmid,
    object   TYPE e071-object,
    obj_name TYPE e071-obj_name,
  END   OF xdata,
  idata LIKE TABLE OF xdata,
  fd  TYPE string,
  ifd TYPE string_table.
*----------------------------------------------------------------------*
START-OF-SELECTION.
  fd = 'E070~TRKORR E070~TRSTATUS E071~PGMID E071~OBJECT E071~OBJ_NAME'.
  SELECT (fd) INTO TABLE idata UP TO 100 ROWS
                               FROM e070
                               JOIN e071 ON e071~trkorr = e070~trkorr.
  BREAK-POINT.
  APPEND: 'E070~TRKORR'   TO ifd,
          'E070~TRSTATUS' TO ifd,
          'E071~PGMID'    TO ifd,
          'E071~OBJECT'   TO ifd,
          'E071~OBJ_NAME' TO ifd.
  SELECT (ifd) INTO TABLE idata UP TO 100 ROWS
                                FROM e070
                                JOIN e071 ON e071~trkorr = e070~trkorr.
  BREAK-POINT.
Gruß

Gerd

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hi,

hole dir die feldbnamen mit fuba DD_GET_NAMETAB

und stelle diese mit : concatenate vu~ itab-name into fldtab

in eine interne Tabelle.

prüfe vorher, ob mit read table , ob der Feldname schon enthalten ist


lag Andreas

Seite 1 von 1

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 64945
Stücklisten
vor einer Woche von Selma.schwarz 1 / 66659
Belege
vor einer Woche von Selma.schwarz 1 / 64780

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.

Vergleichbare Themen

Select bei mehreren eindeutigen Werten
von mydigitalme » 07.06.2017 17:38
Select-options Intervallabfrage bei char werten
von tmxx » 07.02.2008 14:08
SELECT SINGLE oder SELECT UP TO 1 ROWS?
von nickname8 » 12.04.2021 10:38
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 64945
Stücklisten
vor einer Woche von Selma.schwarz 1 / 66659
Belege
vor einer Woche von Selma.schwarz 1 / 64780

Unbeantwortete Forenbeiträge

Stücklisten
vor einer Woche von Selma.schwarz 1 / 66659
Belege
vor einer Woche von Selma.schwarz 1 / 64780