Selektion aus mehreren Tabellen

Getting started ... Alles für einen gelungenen Start.
42 Beiträge • Vorherige Seite 3 von 3 (current)
42 Beiträge Vorherige Seite 3 von 3 (current)

Re: Selektion aus mehreren Tabellen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Einen Tipp gebe ich noch, da ADT ab jetzt übernimmt: "Left Outer Join"

ADT gebe ich auch einen Hinweis: Nadine_2706 ist Anfängerin.

Ich wollte ihr eigentlich mehrere Möglichkeiten zeigen und ihr auf keinen Fall ein Coding präsentieren.

Ab jetzt liegt es an Dir, ADT, wir zählen auf Dich :up:

Folgende Benutzer bedankten sich beim Autor Unit605 für den Beitrag:
Nadine_2706


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


Re: Selektion aus mehreren Tabellen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Unit605 hat geschrieben:Nicht nur Reden schwingen... besser machen.
Wenn ich recht in der Annahme gehe, dass du die Einträge aus LFM1 ermitteln möchtest, die nicht EKPO und EKKO vorkommen, dann sollte dies helfen:

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_lfm1,
    lifnr  TYPE lfm1-lifnr,
    ekorg  TYPE lfm1-ekorg,
    elifnr TYPE ekko-lifnr,
  END OF ts_lfm1.

DATA:
  lt_lfm1 TYPE STANDARD TABLE OF ts_lfm1 WITH DEFAULT KEY.

SELECT l~lifnr l~ekorg k~lifnr
  INTO TABLE lt_lfm1
  FROM lfm1 AS l
    LEFT OUTER JOIN ekko AS k
      ON l~lifnr EQ k~lifnr
    INNER JOIN ekpo AS p
      ON p~ebeln EQ k~ebeln
  WHERE l~ekorg EQ '0020'
    AND p~bukrs EQ '0020'
    AND p~werks EQ '0010'.

DELETE lt_lfm1 WHERE elifnr IS NOT INITIAL.
Ich hab leider keine Daten ob es wirklich funktioniert, aber zumindest lässt es sich fehlerfrei kompilieren.

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.18
Basis: 7.50

Re: Selektion aus mehreren Tabellen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Ich geb aber keine Garantie darauf, dass diese Abfrage wirklich performant ist :oops:
Bei weiterer Betrachtung würde ich eher dazu raten, zwei SELECTS (EKPO INNER JOIN EKKO und LFM1) abzusetzten und dann die Ergebnisse vergleichen und mithilfe der zweiten Abfrage alle Einträge aus dem ersten Ergebnis entfernen.

Wenn man das dann noch alles sortiert/verdichtet hat und mittels LOOP AT und READ TABLE ... BINARY SEARCH umsetzt, dürfte das Programm weitaus schneller sein als die direkte Datenbankabfrage.

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.18
Basis: 7.50

Re: Selektion aus mehreren Tabellen

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Also:
1. ich selektiere erst die eintraäge aus ekko und ekpo aus

Code: Alles auswählen.

  select P~BUKRS P~WERKS P~KUNNR K~LIFNR
    from EKPO as P inner join EKKO as K on P~EBELN = K~EBELN
    into corresponding fields of table LT_LIEF
    where P~BUKRS = '0300'
      and P~WERKS = '0060'.
Dann mache ich einen 2-ten select und selektiere aus der tabelle lfm1 aus:

Code: Alles auswählen.

  select LIFNR EKORG from LFM1 into table LT_LFM1
        where  EKORG = '0060'.
Bei weiterer Betrachtung würde ich eher dazu raten, zwei SELECTS (EKPO INNER JOIN EKKO und LFM1) abzusetzten und dann die Ergebnisse vergleichen und mithilfe der zweiten Abfrage alle Einträge aus dem ersten Ergebnis entfernen.
Wie entferne ich abe die Einträge mithilfe der zweiten Abfrage aus dem ersten Ergebnis???
Zuletzt geändert von Nadine_2706 am 07.10.2011 07:11, insgesamt 2-mal geändert.

Re: Selektion aus mehreren Tabellen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
So:
a-dead-trousers hat geschrieben:Wenn man das dann noch alles sortiert/verdichtet hat und mittels LOOP AT und READ TABLE ... BINARY SEARCH umsetzt, dürfte das Programm weitaus schneller sein als die direkte Datenbankabfrage.

Code: Alles auswählen.

sort LT_LFM1 by LIFNR
delete adjacent duplicates from LT_LFM1 comparing LIFNR
loop at LT_LIEF assigning <ls_lief>.
  read table LT_LFM1 transporting no fields binary search with key LIFNR eq <ls_lief>-LIFNR.
  if sy-subrc eq 0.
    delete LT_LIEF.
  endif.
endloop.
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.18
Basis: 7.50

Re: Selektion aus mehreren Tabellen

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Da werden aber die Einträge aus LT_LIEF entfernt, bis die tabelle leer ist.

Die LT_LIEF-Einträge sollen aus LT_LFM1 gelöscht werden.

???

Re: Selektion aus mehreren Tabellen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Dann vertausch einfach die Tabelle des LOOP AT mit der des READ TABLE :o
Und sinngemäß auch bei SORT und DELETE.
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.18
Basis: 7.50

Re: Selektion aus mehreren Tabellen

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Das hatte ich... da tut er nichts löschen!

Re: Selektion aus mehreren Tabellen

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
OK. Sorry hat's geklappt, war mein Fehler!

Vielen Dank!!!!!

Re: Selektion aus mehreren Tabellen

Beitrag von Nadine_2706 (ForumUser / 91 / 16 / 0 ) »
Danke!
Zuletzt geändert von Nadine_2706 am 06.10.2011 13:21, insgesamt 1-mal geändert.

Re: Selektion aus mehreren Tabellen

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Was ist so schwer daran, den Cursor auf das Wort "assigning" zu stellen und F1 zu drücken? Nichts gegen Fragen, auch nicht gegen einfache Fragen (die stell ich auch gelegentlich), aber wenn die Antwort nur einen Tastendruck weit weg ist.....

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

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

Re: Selektion aus mehreren Tabellen

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Nadine_2706

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Vergleichbare Themen

19
Antw.
5806
Views
Selektion von mehreren Belegarten
von kisa » 16.05.2012 13:40 • Verfasst in ABAP® für Anfänger
10
Antw.
3708
Views
BAPI Selektion aus Ranges Tabellen
von Besi » 08.02.2005 17:53 • Verfasst in ABAP® Core
22
Antw.
9645
Views
Daten aus mehreren Tabellen auslesen
von phil1982 » 07.08.2007 15:13 • Verfasst in ABAP® für Anfänger
6
Antw.
2643
Views
Daten aus mehreren Tabellen ausgeben
von thr-hn » 25.03.2014 09:14 • Verfasst in ABAP® für Anfänger
2
Antw.
1591
Views
Verwendung von mehreren Tabellen in DB-Views
von ST22 » 17.04.2008 10:34 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Bright4.5 3 / 1471
Regex in where
vor 3 Stunden von tar 6 / 129
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 121
IT0024 Qualifikationen CP-ID
vor 18 Stunden von DeathAndPain 2 / 353

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

Daten an Tabelle binden
vor einer Stunde von Bright4.5 3 / 1471
Regex in where
vor 3 Stunden von tar 6 / 129
Programm anlegen mit Vorlage
vor 18 Stunden von DeathAndPain 2 / 121
IT0024 Qualifikationen CP-ID
vor 18 Stunden von DeathAndPain 2 / 353

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 20 Stunden von snooga87 1 / 86
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821