clustertabelle

Getting started ... Alles für einen gelungenen Start.
32 Beiträge • Seite 1 von 3 (current) Nächste
32 Beiträge Seite 1 von 3 (current) Nächste

clustertabelle

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
hallo miteinander
besteht es eine Möglichkeit, ein clustertabelle zu joinen. Ich möchte die tabelle bkpf und bseg miteinander joinen.

Ich habe so programmiert.

Code: Alles auswählen.

  SELECT SINGLE * FROM bseg AS e JOIN bkpf AS a ON e~belnr = a~belnr
                                                AND a~bukrs = 'xxxx'
                                                AND a~gjahr = '2008'.
als fehlermeldung erhalte ich:

Code: Alles auswählen.

Für Pool-Tabellen, Cluster-Tabellen und Projektions-Views ist JOIN		
nicht erlaubt: "BSEG".
Danke kostonstyle

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


Beitrag von ROL (ForumUser / 7 / 0 / 0 ) »
hi,
ne antwort hab ich leider nicht, aber großartig, dass diese frage hier heute aufgetaucht ist ;) ich habe etwas ähnliches heute auch probiert

Code: Alles auswählen.

  SELECT ...
    FROM ( bkpf AS bk
         INNER JOIN bseg AS bs ON  bk~bukrs = bs~bukrs
                               AND bk~belnr = bs~belnr
                               AND bk~gjahr = bs~gjahr )
    UP TO p_rows ROWS
    INTO  CORRESPONDING FIELDS OF TABLE lt_test
    WHERE bk~bukrs =  p_bukrs
    AND   bk~belnr IN so_belnr
    AND   bk~blart IN so_blart
    AND   bk~bldat IN so_bldat
    AND   bk~budat IN so_budat.
ansonsten muss ich nach gegebenen kriterien erst die bkpf auslesen, wobei die selektionskriterien abgsehen von einer optional sind, was das ganze sehr unperformant macht.

beim coding kann man sich ja an den threadbesitzer allein wenden, da ich mich hier ja nur eingeschlichen habe ;)

eine alternative idee, die nicht ein all entries benötigt, wär auch super

gruß
Zuletzt geändert von ROL am 15.05.2008 16:00, insgesamt 1-mal geändert.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo kostonstyle,

die Fehlermeldung ist doch eindeutig.
Das liegt daran, dass die Datenbank die Tabelle BSEG nicht kennt, sondern nur die Clustertabelle RFBLG, in der die BSEG steckt.

Eventuell könnten Dir die BSID, BSIK, BSIS, BSAD, BSAK, BSAD weiterhelfen.

Ansonsten die BSEG und dann die BKPF mit FOR ALL ENTRIES nachlesen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
Ansonsten die BSEG und dann die BKPF mit FOR ALL ENTRIES nachlesen.
wie mach ich das?
danke kostenstyle

Beitrag von ralf.wenzel (Top Expert / 3936 / 200 / 281 ) »
kostonstyle hat geschrieben:wie mach ich das?
danke kostenstyle
Du kennst die Online-Hilfe nicht?

select (feldliste)
from bkpf into table lt_bkpf
where.....

select (feldliste)
from bseg into table lt_bseg
for all entries in lt_bkpf
where belnr = lt_bkpf-belnr
and.....

So in der Art. In die WHERE-Bedingung des zweiten Selects gehören zumindest die Schlüsselfelder des ersten (die also auch in der Feldliste bzw. in lt_bkpf enthalten sein sollten).


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

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »

Code: Alles auswählen.

CLASS databasetrust DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS main.

  PRIVATE SECTION.

    CLASS-DATA: BEGIN OF it_bkpf.
    INCLUDE bkpf.
    CLASS-DATA: END OF it_bkpf.

    CLASS-DATA: BEGIN OF it_bseg.
    INCLUDE bseg.
    CLASS-DATA: END OF it_bseg.

ENDCLASS.     
wenn ich so definiere bekomme folgede Fehlermeldung, wieso?
INCLUDE-Report "BKPF" nicht gefunden.

Beitrag von ralf.wenzel (Top Expert / 3936 / 200 / 281 ) »
Mal abgesehen von dem Syntaxfehler beim include structure, würde ich bei den beiden NIE die komplette Tabellenbreite nehmen, sonst bremst man die SELECTS tierisch aus. Guck dir mal an wie breit die BSEG ist.


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

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
habe das programm nachgebessert.

Code: Alles auswählen.

CLASS databasetrust DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS main.

  PRIVATE SECTION.

    DATA: d_bkpf TYPE bkpf,
          d_bseg TYPE bseg.

    CLASS-DATA: BEGIN OF it_bkpf.
    INCLUDE STRUCTURE d_bkpf.
    CLASS-DATA: END OF it_bkpf.

    CLASS-DATA: BEGIN OF it_bseg.
    INCLUDE STRUCTURE d_bseg.
    CLASS-DATA: END OF it_bseg.

ENDCLASS.   

Beitrag von ralf.wenzel (Top Expert / 3936 / 200 / 281 ) »
kostonstyle hat geschrieben:habe das programm nachgebessert.
Das glaube ich nicht ;) Siehe mein Posting eins höher.


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

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »

Code: Alles auswählen.

REPORT zprogrammam.

*----------------------------------------------------------------------*
*       CLASS databasetrust DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS databasetrust DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS main.

  PRIVATE SECTION.

    CLASS-DATA: BEGIN OF it_bkpf,
                bukrs_p TYPE  bukrs,
                belnr_p TYPE  belnr_d,
                gjahr_p TYPE  gjahr,
                bschl TYPE  bschl,
                koart TYPE  koart,
                shkzg TYPE shkzg,
                dmbtr TYPE  dmbtr,
                wrbtr TYPE  wrbtr,
                kostl TYPE  kostl,
                aufnr TYPE  aufnr,
                vbel2 TYPE  vbeln_va,
                posn2 TYPE  posnr_va,
                paobjnr TYPE  rkeobjnr,
                END OF it_bkpf.

    CLASS-DATA: BEGIN OF it_bseg,
                bukrs_p TYPE  bukrs,
                belnr_p TYPE  belnr_d,
                gjahr_p TYPE  gjahr,
                tcode TYPE  tcode,
                END OF it_bseg.

    CLASS-DATA: BEGIN OF it_bsis,
                bukrs_p TYPE  bukrs,
                gjahr_p TYPE  gjahr,
                belnr_p TYPE  belnr_d,
                hkont TYPE  hkont,
                buzei TYPE  buzei,
                waers TYPE  waers,
                shkzg TYPE  shkzg,
                END OF it_bsis.
ENDCLASS.                    "databasetrust DEFINITION

*----------------------------------------------------------------------*
*       CLASS databasetrust IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS databasetrust IMPLEMENTATION.

  METHOD main.
    SELECT bukrs
           belnr
           gjahr
           bschl
           koart
           shkzg
           dmbtr
           wrbtr
           kostl
           aufnr
           vbel2
           posn2
           paobjnr
    FROM bkpf INTO TABLE it_bkpf WHERE bukrs = '2008'.
  ENDMETHOD.                    "main

ENDCLASS.                    "databasetrust IMPLEMENTATION


START-OF-SELECTION.


END-OF-SELECTION.
so herr wenzel ist es richtig so?
:lol:
aber eine fehler erhalte ich noch

Code: Alles auswählen.

"IT_BKPF" ist keine interne Tabelle - die Angabe "OCCURS n" fehlt.	
gruss kostonstyle

Beitrag von ralf.wenzel (Top Expert / 3936 / 200 / 281 ) »
kostonstyle hat geschrieben:so herr wenzel ist es richtig so?
Den eigentlichen Knackpunkt hast du noch nicht reingeschrieben: Den BSEG-Select.
kostonstyle hat geschrieben:aber eine fehler erhalte ich noch

Code: Alles auswählen.

"IT_BKPF" ist keine interne Tabelle - die Angabe "OCCURS n" fehlt.	
gruss kostonstyle
Wundert mich nicht, weil du it_bkpf nicht als Tabelle deklariert hast.


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

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »

Code: Alles auswählen.

REPORT zprogrammam.

*----------------------------------------------------------------------*
*       CLASS databasetrust DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS databasetrust DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS main.

  PRIVATE SECTION.

    TYPES: BEGIN OF it_bkpf,
              bukrs_p TYPE  bukrs,
              belnr_p TYPE  belnr_d,
              gjahr_p TYPE  gjahr,
              bschl TYPE  bschl,
              koart TYPE  koart,
              shkzg TYPE shkzg,
              dmbtr TYPE  dmbtr,
              wrbtr TYPE  wrbtr,
              kostl TYPE  kostl,
              aufnr TYPE  aufnr,
              vbel2 TYPE  vbeln_va,
              posn2 TYPE  posnr_va,
              paobjnr TYPE  rkeobjnr,
           END OF it_bkpf.
           
    DATA: tab_bkpf TYPE TABLE OF it_bkpf INITIAL SIZE 0.

    CLASS-DATA: BEGIN OF it_bseg,
                 bukrs_p TYPE  bukrs,
                 belnr_p TYPE  belnr_d,
                 gjahr_p TYPE  gjahr,
                 tcode TYPE  tcode,
                 END OF it_bseg.

    CLASS-DATA: BEGIN OF it_bsis,
                 bukrs_p TYPE  bukrs,
                 gjahr_p TYPE  gjahr,
                 belnr_p TYPE  belnr_d,
                 hkont TYPE  hkont,
                 buzei TYPE  buzei,
                 waers TYPE  waers,
                 shkzg TYPE  shkzg,
                 END OF it_bsis.

ENDCLASS.                    "databasetrust DEFINITION

*----------------------------------------------------------------------*
*       CLASS databasetrust IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS databasetrust IMPLEMENTATION.

  METHOD main.
    SELECT bukrs
           belnr
           gjahr
           bschl
           koart
           shkzg
           dmbtr
           wrbtr
           kostl
           aufnr
           vbel2
           posn2
           paobjnr
    FROM bkpf INTO TABLE tab_bkpf WHERE bukrs = '2008'.
  ENDMETHOD.                    "main

ENDCLASS.                    "databasetrust IMPLEMENTATION


START-OF-SELECTION.


END-OF-SELECTION.
nun habe ich es so umgeschrieben, es geht immer noch.
fehlermeldung:

Code: Alles auswählen.

Innerhalb einer statischen Methode ist ohne Zusatzangabe nur ein
Zugriff auf statische Attribute möglich.

Beitrag von uh (Specialist / 158 / 0 / 1 ) »
Du hättest tab_bkpf auch als class-data definieren müssen....

Grüße

uh

Beitrag von kostonstyle (Specialist / 247 / 0 / 0 ) »
nun mein programm ist fast fertig, werde später hier veröffentlichen. ich habe noch ein problem, in oo ist es verboten interne tabelle mit kopfzeile zu definieren, was für eine alternative gibt es?

Gruss kostonstyle

Beitrag von ralf.wenzel (Top Expert / 3936 / 200 / 281 ) »
kostonstyle hat geschrieben:nun mein programm ist fast fertig, werde später hier veröffentlichen. ich habe noch ein problem, in oo ist es verboten interne tabelle mit kopfzeile zu definieren, was für eine alternative gibt es?
Eine Tabelle OHNE Kopfzeile (und statt der impliziten Kopfzeile eine explizite Workarea zu definieren).


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

Vergleichbare Themen

1
Antw.
1215
Views
Löschen Clustertabelle
von ITEL » 13.01.2006 15:20 • Verfasst in Basis
0
Antw.
1175
Views
Änderung verfolgen bei Clustertabelle
von BarbaraM » 25.10.2006 15:41 • Verfasst in ABAP® Core
0
Antw.
1979
Views
Clustertabelle in der Maxdb anzeigen mit dem SQL Studio
von brinki » 21.08.2008 20:57 • Verfasst in Basis
6
Antw.
3090
Views
XD01 - Daten aus INDX Clustertabelle vorbelegen!!!
von guggi » 09.06.2005 12:11 • Verfasst in Dialogprogrammierung

Aktuelle Forenbeiträge

Rechnung: Belegspez. Adresse
vor 11 Stunden von Manfred K. 3 / 461
Daten an Tabelle binden
Gestern von Lukas Sanders 4 / 2308
Regex in where
vor 3 Tagen von tar 8 / 1145

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

Rechnung: Belegspez. Adresse
vor 11 Stunden von Manfred K. 3 / 461
Daten an Tabelle binden
Gestern von Lukas Sanders 4 / 2308
Regex in where
vor 3 Tagen von tar 8 / 1145

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 5 Tagen von snooga87 1 / 758
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3938
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 10363