aktueller Tabelleneintrag

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

aktueller Tabelleneintrag

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Hallo,

ich möchte aus einer Tabelle den aktuellen gültigen Satz lesen.
(Anhand von 'Datum ab' und 'Datum bis'.)

Wie macht man das am Geschicktesten?
Gibt es hierfür einen eigenen Befehl?

Viele Grüße! :D

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


Beitrag von Thomas R. (Expert / 755 / 75 / 34 ) »
Hallo Mamba (und was ist mit MAOAM)!

Interne Tabelle: READ
Datenbanktabelle SELECT

MfG
Thomas R.

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
Hallo mamba,

versuch's mal so:

Code: Alles auswählen.

DATA: it_sbook TYPE TABLE OF sbook.
SELECT-OPTIONS: so_date FOR sbook-fldate.


START-OF-SELECTION.

SELECT *
  FROM sbook
  INTO TABLE it_sbook
  WHERE fldate IN so_date.
Gruß,
Charadin

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Das ging ja schnell!
Danke! :D


@Thomas
Bekomme ich mit Select grundsätzlich den aktuellsten Eintrag?

PS: Ich mag kein Maoam! :wink:


@Charadin
Ich habe leider keine Select-Options zur Verfügung. :?

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
mamba hat geschrieben:@Charadin
Ich habe leider keine Select-Options zur Verfügung. :?
dann versuch's mal so:

Code: Alles auswählen.

SELECT *
  FROM sbook
  INTO TABLE it_sbook
  WHERE fldate BETWEEN datum_von AND datum_bis.
Gruß,
Charadin

Re: aktueller Tabelleneintrag

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
mamba hat geschrieben:Hallo,

ich möchte aus einer Tabelle den aktuellen gültigen Satz lesen.
(Anhand von 'Datum ab' und 'Datum bis'.)

Wie macht man das am Geschicktesten?
Gibt es hierfür einen eigenen Befehl?

Viele Grüße! :D
HI!

Wenn ich dich richtig verstehe, willst du einen gültigen Sa´tz, der Zwischen 2 Datums steckt, welche sich in der Datenbank aber überschneiden können.
Für den Fall musst sowas machen: (Beispiel anhand Uhrzeit

Code: Alles auswählen.

*-----------------------------------------------------*
*   Uhrzeit:    7     8     9    10     11     12     *
*   Eingabe:          X                  X            *
* --------------------------------------------------- *
*   Möglich 1:            X         X                 *
*   Möglich 2:            X                   X       *
*   Möglich 3:     X                X                 *
*   Möglich 4:     X                          X       *
*-----------------------------------------------------*
    SELECT  *
      FROM  db_tab
      INTO  TABLE itba
      WHERE strtdate  EQ  s_datum
        AND
            (  ( strt  >= zeit_von AND             " Für M2, M1
                 strt  <  zeit_bis     )
             OR
               ( ende  >  zeit_von AND             " Für M3, M1
                 ende  <= zeit_bis     )
             OR
               ( strt <= zeit_von  AND                 " Für M4
                 ende >= zeit_bis      )    ) .


Beitrag von Thomas R. (Expert / 755 / 75 / 34 ) »
Hallo mamba,
NEIN, aber:
mein Hinweis sollte Dich verleiten die jeweilige Hilfe dazu zu lesen um selbst die Lösung zu finden. Nur dann wirst Du wirklich etwas lernen und Dein Wissen erweitern. Nur so kommst Du auf Dauer weiter.

MfG
Thomas R.

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Hm, ich habe mich ganz falsch ausgedrückt, glaube ich.

In der Datenbanktabelle gibt es zu meiner Where-Bedingung mehrere Zeilen.
Ich brauche davon aber den Satz, dessen Datum am Aktuellsten ist.

Das steht in der Tabelle:

DATAB DATBI
01.01.2003 31.12.9999
25.07.2003 31.12.9999
01.05.2003 30.06.2003
15.07.2003 31.12.9999
15.07.2003 31.12.9999
05.03.2004 05.03.2004
01.01.2005 31.12.9999

In dem Fall bräuchte ich den letzten Satz - 01.01.2005 bis 31.12.9999 -.

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
@mamba:

in Deinem Beispiel gibt es 2x einen Eintrag für folgenden Zeitraum:

Code: Alles auswählen.

15.07.2003 31.12.9999
Welcher Datensatz soll dann zurückgegeben werden?


Und was, wenn ich diese beiden Datensätze habe:

Code: Alles auswählen.

01.01.2005 31.03.2005
01.01.2005 31.12.9999
Welcher der beiden ist dann z.B. zum Stichtag 20.02.2005 aktueller?
Gruß,
Charadin

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Hm, also im ersten Beispiel wäre es dann egal welcher geliefert wird, denn eigentlich sollte es das nicht geben.

Beim zweiten Beispiel wird es spannender. Da wäre es der Eintrag bis 9999. Bzw. ICH würde den dann nehmen.

Beitrag von Charadin (Specialist / 148 / 0 / 0 ) »
noch ein Lösungsversuch: :wink:

Code: Alles auswählen.

SORT it_tab BY anfang DESCENDING
               ende   DESCENDING.

READ TABLE it_tab INTO st_tab INDEX 1.
Gruß,
Charadin

Beitrag von Thomas R. (Expert / 755 / 75 / 34 ) »
Hallo mamba,

hier ein konkretes Beispiel auf der afrv (so Du dort Daten hast).

Code: Alles auswählen.

REPORT 1.
PARAMETERS:
  p_datum TYPE dats OBLIGATORY DEFAULT sy-datum.

START-OF-SELECTION.
  PERFORM do_it USING p_datum.

*&---------------------------------------------------------------------*
*&      Form  do_it
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->VALUE(I_DATUM)  text
*----------------------------------------------------------------------*
FORM do_it USING value(i_datum) TYPE dats.
  DATA:
    lv_afori TYPE afrv-afori,
    lv_afruv TYPE afrv-afruv,
    lv_counter TYPE afrv-counter.

  SELECT afori afruv counter
    INTO (lv_afori, lv_afruv, lv_counter)
    FROM afrv
    WHERE endda >= i_datum
      AND begda <= i_datum.
    WRITE:
      lv_afori, lv_afruv, lv_counter.
  ENDSELECT.
  write:
    / 'Anzahl gefundener Datensätze:',sy-dbcnt.
ENDFORM.                    "do_it
Falls Du noch Probleme mit der Umsetzung hast poste doch mal den Tabellennamen.

MfG
Thomas R.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
8771
Views
Aktueller Mehrwertsteuersatz
von cali » 11.01.2007 08:24 • Verfasst in Sales and Distribution
8
Antw.
3285
Views
aktueller Wert
von bohne » 03.03.2006 10:15 • Verfasst in ABAP® für Anfänger
1
Antw.
1235
Views
Aktueller Preis
von 82kolu1bma » 17.12.2015 09:04 • Verfasst in ABAP® für Anfänger
7
Antw.
6853
Views
Aktueller Tag des Jahres ermitteln
von chatty » 28.07.2005 08:10 • Verfasst in ABAP® Core
9
Antw.
5376
Views
Tabelleneintrag
von Mueller.D » 18.09.2017 13:31 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Vererbung abstrakte Klassen
vor 3 Stunden von rob_abc 5 / 82
Neue Themen als SAP Entwickler
vor 13 Stunden von msfox 91 / 8998

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

Vererbung abstrakte Klassen
vor 3 Stunden von rob_abc 5 / 82
Neue Themen als SAP Entwickler
vor 13 Stunden von msfox 91 / 8998