ich möchte Konditionen aus SAP auslesen. Diese sind in mehreren ähnlich strukturierten Tabellen erfasst (z.B. A503, A858). Eine Kondition kann dabei nur in einer Tabelle auftauchen, nie in mehreren. Zwischen den Tabellen besteht keine direkte Beziehung.
Kann ich eine Abfrage nach Konditionen (z.B. 1234 - 1238) an mehrere Tabellen starten, sodass ich eine Liste erhalte, die sich aus den Inhalten mehrerer Tabellen zusammensetzt? Wie?
Ziel schematisch:
Merkmal | Quelle | weitere Merkmale
0001234 | Table A | *
0001235 | Table B | *
0001236 | Table B | *
0001237 | Table A | *
0001238 | Table C | *
Zwischen den Tabellen besteht keine direkte Beziehung.
Es besteht eine Beziehung zwischen den Tabellen, nämlich die Zugriffsfolge!
Du musst die Tabellen in der in der Zugriffsfolge definierten Reihenfolge lesen. Es bringt dir nichts, wenn du EINEN Zugriff auf alle Tabellen hast, weil du dann ggfs. Preise aus allen Tabellen bekommst (siehe mein Zweifel oben). Aber nur der erste ist gültig!
Falls meine Annahme doch verkehrt ist und es sich wirklich um komplett voneinander unabhängige Preisinformationen handelt, dann ist das von whaslbeck erwähnte UNION wahrscheinlich sinnvoll. Wobei ich trotz des wahrscheinlich etwas performanteren Zugriffs mit UNION (weil nur ein Zugriff auf die DB erfolgt) lieber einzelne SELECTS bauen würde.
Meine SQL-Kenntnisse sind leider rudimentär und vermutlich kriege ich auch keine Berechtigung, um derartige Querys selbst zu erfassen, aber ich werde mich einmal weiter zu Union und Select informieren und dann die IT dazu kontaktieren.
Es sind tatsächlich unabhängige Tabellen. Die Konditionsnummern sind unikate Schlüsselmerkmale und haben eine zugeordnete (1:n) Konditionsart. Je nach Konditionsart besteht eine eigene Tabelle, welche nur die entsprechenden Konditionen speichert.
Hmm... Berechtigung für Queries bekommst Du nicht, aber ABAP-Programme darfst Du erstellen? Das finde ich seltsam, da man mit einem Programm jenseits sämtlicher Berechtigungen alles machen kann, einschließlich allem, was eine Query ermöglichen würde.