Beträge addieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Beträge addieren

Beitrag von Gast ( / / 0 / 3 ) »
Ich habe ein Problem:

Gegeben ist eine Interne Tabelle in welcher die Kostenstelle, eine Belegnummer, der Username und ein Betrag vorhande ist. itab_user_daten

z.B.

1500 2121440 zx1922 1.000
1500 5234345 zx1922 5.200
2100 2324545 zx1922 1.200
2100 2343114 zx1922 2.200
1500 2121440 zx1933 1.880
1500 5234345 zx1933 1.100


...


wie komme ich dahin, diese Daten in eine weitere interne Tabelle zu schreiben, die dann wie folgt aussehen soll: itab_user_ges

zx1922 9.600
zx1933 2.980

also alle Beträge der einzelnen User addieren und in einer Zeile ausgeben.

muss ich zwei loops auf die interne Tabelle itab_user_daten machen? Bin ein wenig ratlos!


Danke für Eure Hilfe


Stephan

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


Beitrag von Gast ( / / 0 / 3 ) »
Meiner Ansicht nach müßte ein Loop über itab_user_daten reichen mit einem move in die wa der Tabelle itab_user_ges. Die einzelnen Sätze dann einfügen mit collect.

Beitrag von Hermann ( / / 0 / 3 ) »
Die zweite Tabelle muß dann mit non-unique key definiert werden (was in dem Falle der username ist), damit es mit dem Collect-Befehl funktioniert.

z.B.:

Code: Alles auswählen.

data: z_itab_ges type standard table of <itabtype> with non-unique key username.
Hermann

Beitrag von Gast ( / / 0 / 3 ) »
Hermann hat geschrieben:Die zweite Tabelle muß dann mit non-unique key definiert werden (was in dem Falle der username ist), damit es mit dem Collect-Befehl funktioniert.

z.B.:

Code: Alles auswählen.

data: z_itab_ges type standard table of <itabtype> with non-unique key username.
Hermann
Nein, wieso?
UNIQUE ist doch OK (ein Eintrag pro User ist gewollt).
Und CHAR-Felder als Key zu behandeln (im Gegensazu zu TYPE P ...) ist doch Default.

Beitrag von Hermann ( / / 0 / 3 ) »
unique wäre ok, funktioniert aber nicht mit Tabellen vom Typ standard. In dem Fall müßte man eine hashed oder eine sorted verwenden. Das funktioniert natürlich auch, sofern man das möchte. Kommt darauf an, wie man die Tabelle später weiterverwenden möchte.

Hermann

Beitrag von Gast ( / / 0 / 3 ) »
wie würde der code dann aussehen?

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Hermann hat geschrieben:unique wäre ok, funktioniert aber nicht mit Tabellen vom Typ standard. In dem Fall müßte man eine hashed oder eine sorted verwenden. Das funktioniert natürlich auch, sofern man das möchte. Kommt darauf an, wie man die Tabelle später weiterverwenden möchte.
Hermann
COLLECT funktioniert auch prima auf STANDARD TABLEs.
Alle Zahlen werden aufsummiert, Nicht-Zahlenfelder bilden automatisch den Schlüssel.
Wenn die itab NUR mit COLLECT gefüllt wird und nicht zwischendurch mit INSERT, APPEND (oder MODIFY auf "Key"-Felder) oder SORT verändert wird, ist das seit einiger Zeit sogar ziemlich effizient.
Wenn man mit dem COLLECT fertig ist, kann man anschließend auch sortieren.
Dann wird halt die temporär von System erzeugte Hash-Verwaltung entsorgt.
Sollte fast alles in der Doku zu COLLECT beschrieben sein.
(Nur nicht, ob nach einem SORT ... ein CLEAR bzw. REFRESH reicht, oder ob ein FREE nötig ist, damit bei einem darauffolgenden COLLECT wieder mit Hash gearbeitet wird.)

Beitrag von Hermann ( / / 0 / 3 ) »
Frank Dittrich hat geschrieben: COLLECT funktioniert auch prima auf STANDARD TABLEs.
Stimmt, aber wenn Du einen Schlüssel definieren willst, funktioniert in Zusammenhang mit STANDARD TABLEs kein unique key. Zwingenderweise mußt Du immer einen non-unique key verwenden. Unique kann nur bei SORTED oder HASHED verwendet werden.
Frank Dittrich hat geschrieben: (Nur nicht, ob nach einem SORT ... ein CLEAR bzw. REFRESH reicht, oder ob ein FREE nötig ist, damit bei einem darauffolgenden COLLECT wieder mit Hash gearbeitet wird.)
Gute Hinweise :-)

Hermann

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2301
Views
CHAR6 addieren
von gs3rr4 » 07.05.2015 12:45 • Verfasst in ABAP® für Anfänger
2
Antw.
1707
Views
Welcher Typ für Beträge?
von mip » 21.07.2008 15:19 • Verfasst in ABAP® für Anfänger
4
Antw.
294
Views
Beträge summieren
von ZF_SAPler » 10.01.2023 14:23 • Verfasst in ABAP® für Anfänger
4
Antw.
7585
Views
Addieren von Variablen in SapScript
von Andreas G » 03.04.2006 14:10 • Verfasst in ABAP® Core
2
Antw.
5141
Views
SELECT mit spalten addieren und GROUP BY
von mawi » 29.05.2007 15:53 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Bedarfszusammenfassung "Einzelbedarfe"
vor einer Stunde von harri 2 / 1142
Trennen Strasse und Hausnummer
vor 3 Stunden von ralf.wenzel 21 / 11266
Dialog-Container mit Toolbar/Status
Gestern von black_adept gelöst 27 / 4363

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

Bedarfszusammenfassung "Einzelbedarfe"
vor einer Stunde von harri 2 / 1142
Trennen Strasse und Hausnummer
vor 3 Stunden von ralf.wenzel 21 / 11266
Dialog-Container mit Toolbar/Status
Gestern von black_adept gelöst 27 / 4363

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 239
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3166
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9758