Ermittlung von Datensätzen mit bestimmten Status

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Ermittlung von Datensätzen mit bestimmten Status

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag zusammen,

ich habe folgendes Problem ein SQL aufzubauen.

Folgende Tabelleninhalte werden für die Nummer 8011 in der SE16 für die Tabelle ZXY ausgegeben.

PRONR ENDDA BEGDA GTW
8011 31.03.2021 01.12.2020 2
8011 30.11.2020 03.08.2020 2
8011 02.08.2020 01.08.2020 1
8011 31.07.2020 07.10.2019 2

Sobald im Dynpro 2020 eingegeben hat soll er rückwirkend ab dem 31.12.2020 zurück gehen solange GTW = 2 ist. Er soll sozusagen in einer Tabelle zurückgeben von wann bis 31.12.2020 PRONR Nummer den GTW ZUstand 2 gehabt hat. Es soll nur das Jahr was eingeben wurde betrachtet werden.
Also 03.08.2020 - 31.12.2020. Den Datensatz dass es zwischen dem 01.01.2020 bis 31.07.2020 soll er nicht wiedergeben, da es dazwischen ein Datensatz mit GTW = 1 gibt.

Kann man so etwas mit SQL abbilden?

Danke für die Hilfestellungen
Kaim

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


Re: Ermittlung von Datensätzen mit bestimmten Status

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Ich würde jetzt mal so grob SELECT MAX(ENDDA) .... vorschlagen

Re: Ermittlung von Datensätzen mit bestimmten Status

Beitrag von black_adept (Top Expert / 4093 / 127 / 940 ) »

Code: Alles auswählen.

REPORT.

SELECT MIN( begda ) AS begda,
       MAX( endda ) AS endda,
       gtw
  FROM zxy AS itab
  WHERE begda <= '20201231'  " Start nicht nach 2020
    AND endda >= '20200101'  " Ende  nicht vor 2020
    AND gtw    = '2'         " Vorgabe
* Es darf kein Intervall nach einer selektierten Zeile geben, die im Jahr 2020 liegt aber nach dem Beginndatum der Zeile der DB-Tabelle
    AND NOT EXISTS ( SELECT * FROM zxy WHERE begda <= '20201231'     " Noch in 2020
                                               AND begda  > itab~begda " Aber nach dem Intervall
                                               AND gtw   <> '2'
                   )
  GROUP BY gtw
  INTO @DATA(ls_data).
  WRITE:/ ls_data-begda, ls_data-endda.
ENDSELECT.
Allerdings must du nachher noch BEGDA und ENDDA auf das Jahr 2020 einschränken, wenn die außerhalb liegen. Das habe ich mit CASE nicht hinbekommen, da Vergleiche hier nicht für Datumstypen erlaubt sind und eine weitere Konvertierung das dann nahezu unleserlich machen würde, falls es überhaupt geht.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

10
Antw.
4279
Views
DELETE von über 420 Mio. Datensätzen
von RantanplanFX » 24.03.2014 11:10 • Verfasst in ABAP® Core
9
Antw.
8035
Views
Fehler: Insert führt zu duplikaten Datensätzen
von Dyrdek » 18.10.2016 14:08 • Verfasst in ABAP® Core
2
Antw.
856
Views
1
Antw.
1591
Views
Anzahl von Datensätzen aus einer Datenbanktabelle dynamisch lesen
von tekko » 31.03.2022 16:26 • Verfasst in ABAP Objects®
4
Antw.
2464
Views
Anzahl von Datensätzen aus einer Datenbanktabelle dynamisch lesen
von tekko » 31.03.2022 16:26 • Verfasst in ABAP Objects®

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 15 Minuten von black_adept gelöst 27 / 3944
IT0024 Qualifikationen CP-ID
vor einer Stunde von ArjenR 1 / 23
Trennen Strasse und Hausnummer
vor 2 Stunden von ewx 17 / 10828

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

Dialog-Container mit Toolbar/Status
vor 15 Minuten von black_adept gelöst 27 / 3944
IT0024 Qualifikationen CP-ID
vor einer Stunde von ArjenR 1 / 23
Trennen Strasse und Hausnummer
vor 2 Stunden von ewx 17 / 10828

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor einer Stunde von ArjenR 1 / 23
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2963
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9552