Inner Join "OR"-Statement scheint nicht zu funktionieren.

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

Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von Highcard (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

bei einem Inner Join scheint das 'OR'-Statement (fett markiert) bei "ON" nicht zu funktionieren. Wenn ich stattdessen 'AND' nutze, funktioniert das Ganze.
Irgendiwe stehe ich auf dem Schlauch und würde mich über Eure Unterstützung freuen.

Code: Alles auswählen.

PARAMETERS: 
pa_abgrs TYPE vbap-abgrs DEFAULT 'YV0001',  
pa_kokrs TYPE kokrs OBLIGATORY DEFAULT '0002',
pa_monat TYPE bis_abgr_m OBLIGATORY,
pa_gjahr TYPE bis_abgr_j OBLIGATORY.

DATA:   hlp_datum          TYPE sy-datum. 
CONSTANTS: comp_nine(20) TYPE c VALUE '09182736455463728190'.

TYPES: BEGIN OF t_tkkaz_tkkar,
             kateg TYPE kategorie,
             zlnid TYPE dzeilen_id,
             koamk TYPE kstar_mask,          " Kostenart
             zidap TYPE dzeilen_id,          " Zeilen-ID akt.pflichtig
             zidnf TYPE dzlnid_naf,          " Zeilen-ID nicht akt.pfl.
             nafpz TYPE naf_prz,             " nicht akt.f.%-Satz
           END OF t_tkkaz_tkkar.
    DATA: lt_tkkaz_tkkar TYPE TABLE OF t_tkkaz_tkkar.

  CONCATENATE pa_gjahr pa_gjahr INTO hlp_datum.
  TRANSLATE hlp_datum USING comp_nine.

   SELECT tkkar~kateg tkkar~zlnid tkkaz~koamk tkkaz~zidap tkkaz~zidnf       
            tkkaz~nafpz
      FROM tkkar
      INNER JOIN tkkaz
      ON  tkkaz~zidnf = tkkar~zlnid
[b]      OR  tkkaz~zidap = tkkar~zlnid[/b]
      INTO TABLE lt_tkkaz_tkkar
      WHERE  tkkar~kokrs  = pa_kokrs
      AND    tkkar~versa  = '000'        
      AND    tkkar~abgsl  = pa_abgrs
      AND  ( tkkar~kateg  = 'E'         
      OR     tkkar~kateg  = 'K' )       
      AND   tkkaz~kokrs  = pa_kokrs
      AND    tkkaz~versa  = '000'
      AND    tkkaz~abgsl  = pa_abgrs.
      AND    tkkaz~zglab  GE hlp_datum.

IF sy-subrc = 0.
cl_demo_output=>display( lt_tkkaz_tkkar )
ENDIf.

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


Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moin.
Was heißt denn "funktioniert nicht"?
Ich vermute, dass Dein Ergebnis-Set zu groß ist. Da ist aber die Frage, was Du eigentlich erreichen möchtest. (Und da ich die beteiligten Tabellen und somit das Umfeld nicht kenne kann ich da auch nicht raten...)
Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von Highcard (ForumUser / 3 / 0 / 0 ) »
Haubi hat geschrieben:
13.04.2022 13:35
Moin.
Was heißt denn "funktioniert nicht"?
Ich vermute, dass Dein Ergebnis-Set zu groß ist. Da ist aber die Frage, was Du eigentlich erreichen möchtest. (Und da ich die beteiligten Tabellen und somit das Umfeld nicht kenne kann ich da auch nicht raten...)
Grüße,
Haubi
Hallo Haubi,

danke für Deine Antwort. Es funktioniert syntaktisch bereits nicht, lässt sich also nicht aktivieren. Wenn ich OR durch AND ersetze ist die Syntxprüfung zufrieden, ich benötige allerdings durch OR-Bedingung.

Grüße
Highcard
Zuletzt geändert von Highcard am 13.04.2022 13:55, insgesamt 1-mal geändert.

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Bei mir geht das mit dem "OR"
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von Highcard (ForumUser / 3 / 0 / 0 ) »
black_adept hat geschrieben:
13.04.2022 14:26
Bei mir geht das mit dem "OR"
Bei mir kommt ein Syntaxfehler. Welches SAP Release habt Ihr?

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Highcard hat geschrieben:
13.04.2022 16:23
Bei mir kommt ein Syntaxfehler. Welches SAP Release habt Ihr?
Wahrscheinlich suchst du das hier?
Unbenannt.png
Getestet habe ich auf einem 7.50 ( hier auch mit Daten getestet ) und einem 7.40 SP10 System (hier nur ob der Syntaxcheck durchläuft ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von Highcard (ForumUser / 3 / 0 / 0 ) »
Hallo Stefan,

danke für Deine Nachricht. Bist Du so nett und zeigst mir mal das Coding oder hast Du das von mir 1:1 genommen und der Syntaxcheck lief erfolgreich durch?

Gruß und danke

Re: Inner Join "OR"-Statement scheint nicht zu funktionieren.

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Moin,

nein - ich hatte das ein wenig angepasst um die Syntaxfehler rauszuwerfen und die Einschränkung nach Kategorie und Datum wegzulassen und die Defaults so zu ändern, dass bei "meinen" Daten was rauskommt.

Code: Alles auswählen.

REPORT.

PARAMETERS:
  pa_abgrs TYPE vbap-abgrs DEFAULT 'Z00000',
  pa_kokrs TYPE kokrs OBLIGATORY DEFAULT '1000'.
*  pa_monat TYPE bis_abgr_m OBLIGATORY,
*  pa_gjahr TYPE bis_abgr_j OBLIGATORY.

DATA:   hlp_datum          TYPE sy-datum.
CONSTANTS: comp_nine(20) TYPE c VALUE '09182736455463728190'.

TYPES: BEGIN OF t_tkkaz_tkkar,
         kateg TYPE kategorie,
         zlnid TYPE dzeilen_id,
         koamk TYPE kstar_mask,          " Kostenart
         zidap TYPE dzeilen_id,          " Zeilen-ID akt.pflichtig
         zidnf TYPE dzlnid_naf,          " Zeilen-ID nicht akt.pfl.
         nafpz TYPE naf_prz,             " nicht akt.f.%-Satz
       END OF t_tkkaz_tkkar.
DATA: lt_tkkaz_tkkar TYPE TABLE OF t_tkkaz_tkkar.

*CONCATENATE pa_gjahr pa_gjahr INTO hlp_datum.
*TRANSLATE hlp_datum USING comp_nine.

SELECT tkkar~kateg, tkkar~zlnid, tkkaz~koamk, tkkaz~zidap, tkkaz~zidnf,
         tkkaz~nafpz
   FROM tkkar
   INNER JOIN tkkaz
   ON  tkkaz~zidnf = tkkar~zlnid
   OR  tkkaz~zidap = tkkar~zlnid
   INTO TABLE @lt_tkkaz_tkkar
   WHERE  tkkar~kokrs  = @pa_kokrs
   AND    tkkar~versa  = '000'
   AND    tkkar~abgsl  = @pa_abgrs
*   AND  ( tkkar~kateg  = 'E'
*   OR     tkkar~kateg  = 'K' )
   AND   tkkaz~kokrs  = @pa_kokrs
   AND    tkkaz~versa  = '000'
   AND    tkkaz~abgsl  = @pa_abgrs.
*      AND    tkkaz~zglab  GE @hlp_datum.

IF sy-subrc = 0.
  cl_demo_output=>display( lt_tkkaz_tkkar ).
ENDIF.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

0
Antw.
358
Views
3
Antw.
1626
Views
Select statement inner Join mit Bedingung aus Teilstring
von Romaniac » 21.08.2021 21:54 • Verfasst in ABAP® Core
9
Antw.
2359
Views
Wie funktionieren Dynpros
von sapnup » 05.09.2017 12:14 • Verfasst in ABAP® für Anfänger
1
Antw.
2231
Views
kann das so funktionieren?
von ABAP » 20.01.2006 10:05 • Verfasst in ABAP® für Anfänger
6
Antw.
2888
Views
OO-ALV: Standardfunktionen funktionieren nicht
von Gast » 11.01.2006 08:58 • Verfasst in ABAP Objects®

Ü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 2 Tagen von Bright4.5 1 / 713
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2342
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8925