SAP Jobsuche bei DV-Treff
peterlustig007
vor 17 Jahre
Hallo,

ich habe folgendes Problem.
Sofern ich zwei Tabellen habe (die zweite ist eine Historientabelle), die wie folgt strukturiert sind:

Marke Typ Periode Anzahl
Opel Vectra 04 12
Opel Ascona 03 11

Marke Typ Periode Anzahl
Opel Vectra 03 1
Opel Ascona 02 3

Nun möchte ich wissen, wieviele Autos in der Periode 3 verkauft wurden. Das heißt als ergebnis

Marke Typ Periode Anzahl
Opel Vectra 03 1
Opel Ascona 03 11

Wie bekomme ich denn das hin, das er in die Historien-Tabelle (zweite tabelle) springt, sofern er in den aktuellen daten nichts findet ? Unter Berücksichtigung, dass die Kombination von Marke und Typ gleichbleiben muss !

Eigentlich würde ich das in SQL mit einem UNION lösen wollen. das gibt es aber nich bei ABAP, oder doch ? Gibt es dazu einen Alternative... ?

Bisher habe ich das mit zwei Sql Statements gelöst, sowie eine If Abfrage nach dem 1. SQL Statement. Allerdings geht mir dabei die Komnbination von Marke / Typ verloren.

Ich hoffe ich hab mich verständlich ausgedrückt.
Vielen Dank für eure Hilfe.

Oli
LupusF
vor 17 Jahre
Hallo,

warum lässt du nicht die Bedingung (wenn nichts in Tab 1 dann Select in Tab 2) weg,

warum so kompliziert?!

Selektiere einfach immer mit gewünschter Periode (z.b. 03) in beiden Tabellen, dann erhälst du alle Einträge.

Und jeder Eintrag ist ja max. nur in einer Tab., du bekommst sie also auch nie doppelt.

Gruß

Lupus

peterlustig007
vor 17 Jahre

Hallo Lupus,

danke für deine Antwort. das ich das evtl. zu kompliziert angehe, hab ich schon befürchtet.

Mir ist nur nicht klar wie Du das meinst. Kannst Du mir nen Beispiel geben ? Wie selektiere ich denn in beiden Tabellen ? Meinst du mit InnerJoin ?

Ich muss die beiden Tabellen ja verknüpfen und dann hab ich einmal A.Periode und B.Periode. Wie bring ich das dann in das Select Statement ?

WHERE A.Periode = 03 OR B.PERIODE = 03

Danke und Gruß

Peter

LupusF
vor 17 Jahre
Hi,

den Innerjoin kannst du wohl vergessen, weil du max. nur in einer Tabelle einen Treffer hast

und somit gar keine Verbindung vorhanden ist.

Ich würde einfach 2 getrennte Select-Schleifen drehen.

Gruß

Lupus

Select * from Tab1 where period = '03'.

....

append itab.

endselect.

Select * from Tab2 where period = '03'.

....

append itab.

endselect.

Benutzer, die gerade dieses Thema lesen