Select mit interner Tabelle

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

Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 12:17
Hallo zusammen,

wahrscheinlich ist mein Problem recht einfach zu lösen.

Ich möchte einen Selekt machen, bei der in einer where-bedingung ein bestimmtes feld einer internen Tabelle abgeglichen wird:

Code: Alles auswählen.

SELECT * FROM Tabelle1
      INTO CORRESPONDING FIELDS OF TABLE Tabelle2
        WHERE gpart  inTabelle3.
Wie bekomme ich so etwas hin?


Re: Select mit interner Tabelle

Beitrag von khb (Specialist / 181 / 5 / 1 ) » 13.11.2013 12:31
Hallo Kenny,

SELECT * FROM Tabelle1
INTO CORRESPONDING FIELDS OF TABLE Tabelle2
for all entries in tabelle3
WHERE gpart =Tabelle3-gpart.

Besser wäre es, statt * die benötigten Felder anzugeben.

LG khb

Folgende Benutzer bedankten sich beim Autor khb für den Beitrag:
Kenny


Re: Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 12:32
Wow, danke für die schnelle Hilfe. Vielen lieben Dank

Re: Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 12:34
und wenn ich sowas noch mit abfragen möchte:

SELECT * FROM Tabelle1
INTO CORRESPONDING FIELDS OF TABLE Tabelle2
for all entries in tabelle3
WHERE gpart =Tabelle3-gpart

and parameter1 IN p_konto

Re: Select mit interner Tabelle

Beitrag von JHM (Top Expert / 1139 / 1 / 179 ) » 13.11.2013 13:42
Kenny hat geschrieben:und wenn ich sowas noch mit abfragen möchte:
Geht das genauso wie du es hier postest.

Mehr dazu steht auch in der F1-Hilfe zu FOR ALL ENTRIES. Lies dir diese Doku genau durch. FOR ALL ENTRIES hat einige Fallstricke (z.B. leere itab = WHERE-Bedingung wird komplet ignoriert) bzw. Performenzfallen (z.B.: itab enthällt mehrfach den gleichen Wert im Vergleichsfeld). Ist eine nette Option für Selects, man muss nur die Besonderheiten kennen.
Gruß Hendrik

Re: Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 13:47
nein nein nein,

dann habe ich es falsch rüber gebracht.

SELECT * FROM Tabelle1
INTO CORRESPONDING FIELDS OF TABLE Tabelle2
for all entries in tabelle3
WHERE gpart =Tabelle3-gpart

and parameter1 IN p_konto "Dieser Zusatz soll sich aber auf die Tabelle 1 beziehen.

Also selectiere zusatzlich noch alle einträge aus Tabelle 1 welche den Selektionskriterien (Parameter1) entsprechen.

So etwas deutlicher?

Re: Select mit interner Tabelle

Beitrag von a-dead-trousers (Top Expert / 3559 / 118 / 926 ) » 13.11.2013 14:15
Jein. :P
Kenny hat geschrieben:Also selectiere zusatzlich noch alle einträge aus Tabelle 1 welche den Selektionskriterien (Parameter1) entsprechen.
Du willst, dass die die Abfrage auf PARAMETER1 die Abfrage auf GPART nicht beeinflusst und umgekehrt.

In diesem Fall musst du dir dann mit einem zweiten Select-Statment behelfen. Das kannst du mit "APPENDING CORRESPONDING FIELDS OF TABLE" durchführen damit alle Einträge am Ende in der "Tabelle2" landen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 14:18
Ok, hört sich super an:-)

Kannst du mir jetzt noch zeigen wie das geht :-)

Re: Select mit interner Tabelle

Beitrag von a-dead-trousers (Top Expert / 3559 / 118 / 926 ) » 13.11.2013 14:36

Code: Alles auswählen.

SELECT * FROM Tabelle1
INTO CORRESPONDING FIELDS OF TABLE Tabelle2
for all entries in tabelle3
WHERE gpart = Tabelle3-gpart.

SELECT * FROM Tabelle1
APPENDING CORRESPONDING FIELDS OF TABLE Tabelle2
WHERE parameter1 IN p_konto.
Das selektiert die Einträge die in "tabelle3" vorkommen UND die Einträge die in "p_konto" vorkommen.

Code: Alles auswählen.

SELECT * FROM Tabelle1
INTO CORRESPONDING FIELDS OF TABLE Tabelle2
for all entries in tabelle3
WHERE gpart = Tabelle3-gpart
  AND parameter1 IN p_konto.
Das selektiert die Einträge die sowohl in "tabelle3" als auch in "p_konto" vorkommen.

Für es einfach mal aus und du siehst den Unterschied.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Select mit interner Tabelle

Beitrag von Kenny (ForumUser / 68 / 28 / 0 ) » 13.11.2013 15:16
... prüfe gerade...

Re: Select mit interner Tabelle

Beitrag von a-dead-trousers (Top Expert / 3559 / 118 / 926 ) » 13.11.2013 15:20
Kenny hat geschrieben:Daher hätte ich jetzt werwartet, dass ich Tabelle 2 am Ende auch nicht mehr als 188 Einträge besitze.
Ich bekomme aber 220.
Theoretisch passt das, denn abhängig davon wie deine Tabelle2 aufgebaut ist (was du hier ja bislang nicht gezeigt hast) kann ein GPART auch mehrmals darin vorkommen.

lg ADT

EDIT:
Kenny hat geschrieben:... prüfe gerade...
Okay, ich warte...
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Last erzeugen im SAPGui?
vor 2 Stunden von tm987456 23 / 294
Neue Felder cji5
vor 7 Stunden von Rabea1103 1 / 21
Abap Karriere Tipps
vor 7 Stunden von Cargo2 5 / 165

Vergleichbare Themen

Select bei interner Tabelle
von Buetzy » 09.07.2007 13:58
Move-Corresponding mit interner Tabelle
von Dele » 13.10.2015 13:53
Key Felder von interner Tabelle auf dem ALV
von thesaint » 14.07.2005 16:32
Problem mit interner Tabelle
von Troilus » 17.11.2007 23:09
Types mit interner Tabelle?
von Gast » 19.07.2005 17:43