CDS Views WHERE

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

CDS Views WHERE

Beitrag von retsch (ForumUser / 55 / 6 / 1 ) »
Muss man bei CDS Views irgendwas beachten, wenn man im WHERE auch nach der rechten Tabellen im JOIN einschränken?
Funktioniert das problemlos?
Danke

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


Re: CDS Views WHERE

Beitrag von a-dead-trousers (Top Expert / 4434 / 225 / 1193 ) »
Funktionieren tut es. Du musst nur beachten, dass dadurch dann ein allfälliger LEFT Join implizit zu einem INNER Join werden könnte. Wenn du zum Beispiel deine Einschränkung mit = machst, werden für die rechte Seite nur die Werte selektiert die tatsächlich vorkommen. Um nun auch die gejointen Datensätze zu erhalten wo nur links etwas vorhanden ist musst du zusätzlich mit IS NULL prüfen.
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: CDS Views WHERE

Beitrag von retsch (ForumUser / 55 / 6 / 1 ) »
a-dead-trousers hat geschrieben:
02.03.2023 07:19
Funktionieren tut es. Du musst nur beachten, dass dadurch dann ein allfälliger LEFT Join implizit zu einem INNER Join werden könnte. Wenn du zum Beispiel deine Einschränkung mit = machst, werden für die rechte Seite nur die Werte selektiert die tatsächlich vorkommen. Um nun auch die gejointen Datensätze zu erhalten wo nur links etwas vorhanden ist musst du zusätzlich mit IS NULL prüfen.

Danke aber ganz verstehe ich dein Post nicht.

Wenn ich im WHERE auf ein Feld der rechten Tabelle(weil es nur in der rechten Tabelle exisitiert) einschränke, dann möchte ich in der Ausgabe die Zeilen haben, die die WHERE Bedingung erfüllen.

der WHERE soll ja für die gesamte gejointe Datensätze herangezogen werden..

Re: CDS Views WHERE

Beitrag von a-dead-trousers (Top Expert / 4434 / 225 / 1193 ) »
Wenn du einen INNER Join verwendest, hast du damit kein Problem. Du willst ja nur Datensätze haben die über die ON-Bedingung in beiden Tabellen vorkommen.
Wenn du aber mit einen LEFT (bzw. RIGHT oder FULL OUTER) arbeitest, möchtest du ja unter Umständen auch Datensätze haben, die nur in einer der beiden Tabellen vorkommen. Verwendest du nun in in deiner WHERE-Bedingung eine Abfrage bei einem LEFT Join auf ein Feld der rechten Tabelle (bzw. bei einm RIGHT Join ein Feld der linken) werden dadurch automatisch alle Datensätze ausgeschlossen die nur in der linken (bzw. rechten) Tabelle vorkommen. Hier muss man zusätzlcih auch mit IS NULL prüfen.

EDIT: Ein Beispiel

Code: Alles auswählen.

* Findet NUR Einträge die in MARD~EINME größer 100 sind. Nicht vorhandene Einträge sind implizit ausgeschlossen.
SELECT *
FROM mara LEFT OUTER JOIN mard
  ON mara~matnr EQ mard~matnr
WHERE mard~einme GT 100.

* Findet Einträge die in MARD~EINME größer 100 sind oder dort NICHT vorkommen.
SELECT *
FROM mara LEFT OUTER JOIN mard
  ON mara~matnr EQ mard~matnr
WHERE mard~einme GT 100
  OR mard~einme IS NULL.
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

Seite 1 von 1

Vergleichbare Themen

6
Antw.
2243
Views
RAP und CDS Views
von retsch » 19.01.2023 09:30 • Verfasst in ABAP® für Anfänger
2
Antw.
7656
Views
CDS Views
von SAP_ENTWICKLER » 04.09.2018 11:56 • Verfasst in Development Related
5
Antw.
2482
Views
CDS-Views / AMDP für HCM
von SaskuAc » 20.03.2019 07:58 • Verfasst in ABAP® für Anfänger
4
Antw.
1143
Views
CDS Views - Probleme
von ZF_SAPler » 17.07.2023 14:31 • Verfasst in ABAP® für Anfänger
1
Antw.
1671
Views
Feldbezeichner in CDS Views für ALV
von ZF_SAPler » 23.05.2023 12:11 • Verfasst in ABAP® für Anfänger

Ü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.