Sortierung nach Wertevorgabe

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

Sortierung nach Wertevorgabe

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Hallo,

ich möchte gerne eine interne Tabelle sortieren. Dies gelingt ja super mit SORT.

Nun möchte ich aber zusätzlich die Sortierung einer bestimmten Spalte nach vorgegebenen Werten sortieren. Hier ein Beispiel:

Tabelle: (Spalte1, Spalte2, Spalte3)
12___12.12.2009___4
11___10.12.2009___1
12___12.12.2009___0
12___25.12.2009___1
18___12.12.2009___1
12___12.12.2009___1

SORT Tabelle BY Spalte1 Spalte2.
11___10.12.2009___1
12___12.12.2009___0
12___12.12.2009___1
12___12.12.2009___4
12___25.12.2009___1
18___12.12.2009___1

Soweit so gut. Nun möchte ich aber das Spalte3 in folgender fest definierter Reihenfolge angezeigt wird: 4 0 1
11___10.12.2009___1
12___12.12.2009___4
12___12.12.2009___0
12___12.12.2009___1
12___25.12.2009___1
18___12.12.2009___1

Kann ich diesen Zusatz mit in die SORT-Anweisung packen?

VG Bjuti

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


Re: Sortierung nach Wertevorgabe

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Mit einer einzigen sicher nicht ;)

Zwei Möglichkeiten die mir auf die Schnelle einfallen:
1)
Du fügst ein weiteres Feld für ein zusätzliches Sortierkriterium ein (Das du je nach dem Inhalt der Spalte 3 befüllst)

2)
Du sortierst deine Tabelle. Kopierst alle Zeilen in eine weitere Tabelle. Löschst dort all Vorkommen die nicht 4 sind. Abschließend mit INSERT die Zeilen dieser neuen Tabelle an die alte anfügen.

Code: Alles auswählen.

sort lt_table1 by column1 column2 column3
lt_table2 = lt_table1.
delete lt_table2 where column3 ne 4.
insert lines of lt_table2 to lt_table1 index 1.
Damit werden alle 4er Einträge an den Anfang der Tabelle geholt ohne die bestehende Sortierung zu ändern.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Bjuti

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: Sortierung nach Wertevorgabe

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Achso... Moment... Blödsinn...

Die Spalte 3 soll an dritter Stelle des Sortierkriteriums sein, oder?
Dann funktioniert nur Variante 1.

lg ADT
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: Sortierung nach Wertevorgabe

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Nein nochmalige Korrektur, es geht doch auch mit Variante 2:

Du holst dir die 4er Einträge wie gehabt an den Anfang der Tabelle und machst dann ein SORT STABLE bei dem du die COLUMN3 weglässt.

Code: Alles auswählen.

sort lt_table1 by column1 column2 column3.
lt_table2 = lt_table1.
delete lt_table2 where column3 ne 4.
insert lines of lt_table2 to lt_table1 index 1.
sort lt_table1 stable by column1 column2.
lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Bjuti

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: Sortierung nach Wertevorgabe

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Hallo Bijuti,

0 durch 2 ersetzten, sortieren, und dann die Ersetzung rückgängig machen und 2 zurück nach 0 ersetzen.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Bjuti

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Sortierung nach Wertevorgabe

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Herzlichen Dank für die schnelle Antworten. Ich werde die Vorschläge durchprobieren und euch berichten wie es lief. VG

Re: Sortierung nach Wertevorgabe

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Hallo,
black_adept hat geschrieben:Hallo Bijuti,

0 durch 2 ersetzten, sortieren, und dann die Ersetzung rückgängig machen und 2 zurück nach 0 ersetzen.
Dies war der entscheidende Denkanstoß für mich. Es klappt wunderbar. Herzlichen Dank aber auch an a-dead-trousers.

VG Bjuti

Re: Sortierung nach Wertevorgabe

Beitrag von edwin (Specialist / 306 / 12 / 68 ) »
Hi,
das Ersetzen finde ich gefährlich, was ist wenn mal tatsächlich eine 2 in den Daten auftaucht, dann wird die 2 durch 0 ersetzt und keiner merkt es ! Da finde ich den Vorschlag mit einer neuen Spalte für das Sortieren wesentlich sicherer.

/Edwin

Re: Sortierung nach Wertevorgabe

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
edwin hat geschrieben:Hi,
das Ersetzen finde ich gefährlich, was ist wenn mal tatsächlich eine 2 in den Daten auftaucht, dann wird die 2 durch 0 ersetzt und keiner merkt es ! Da finde ich den Vorschlag mit einer neuen Spalte für das Sortieren wesentlich sicherer.

/Edwin
Eine willkürliche Sortierung wie 4,0,1 bedingt automatisch eine Programmanpassung, wenn neue Feldwerte auftauchen. Das wäre bei einer zusätzlichen Spalte wohl auch nicht anders.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Sortierung nach Wertevorgabe

Beitrag von edwin (Specialist / 306 / 12 / 68 ) »
Hi,
klar ist das immer mit einem Aufwand verbunden, allerdings bleibe ich dabei - es ist gefährlich einfach die Daten wie beschrieben zu ändern, im ungünstigsten Fall merkt keiner, daß da eine neue Zeichenfolge (2) auftaucht, da diese ja nach dem Sort wieder auf 0 gesetzt wird.

/Edwin

Re: Sortierung nach Wertevorgabe

Beitrag von JHM (Top Expert / 1225 / 2 / 204 ) »
edwin hat geschrieben: klar ist das immer mit einem Aufwand verbunden, allerdings bleibe ich dabei - es ist gefährlich einfach die Daten wie beschrieben zu ändern, im ungünstigsten Fall merkt keiner, daß da eine neue Zeichenfolge (2) auftaucht, da diese ja nach dem Sort wieder auf 0 gesetzt wird.
Ich würde es auch über eine zusätzliche Sortierspalte lösen, die Sortierreihenfolge dann noch über eine CustomizingTabelle realiseren und der Aufwand der Nachpflege ist gering. Wenn ein neuer Wert dazu kommt, kann die Sortierreihenfolge nicht gemapped werden und man gibt eine Fehlermeldung aus.
Gruß Hendrik

Re: Sortierung nach Wertevorgabe

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Hallo zusammen,

Ich werde mal versuchen mein Coding anzupassen und die sichere Variante verwenden. Sicher ist immer gut :) Danke

Seite 1 von 1

Vergleichbare Themen

0
Antw.
5991
Views
Sortierung von BADIs
von foessleitnerj » 18.07.2013 10:04 • Verfasst in Tips + Tricks & FAQs
3
Antw.
3820
Views
Sortierung Datenbanktabelle
von fba9901 » 29.01.2015 09:51 • Verfasst in ABAP® Core
4
Antw.
4859
Views
Sortierung Entgeltnachweis
von Fluff » 18.10.2007 11:01 • Verfasst in Human Resources
2
Antw.
4117
Views
ALV-OO Sortierung ausschalten
von axxter » 28.08.2007 09:50 • Verfasst in ABAP Objects®
0
Antw.
1317
Views
Anlagenhistorie RAHIST02 Sortierung
von Jakob » 26.10.2010 09:08 • Verfasst in Financials

Aktuelle Forenbeiträge

Schachtsteuerung je nach Auftragsart
vor 33 Minuten von JHM 3 / 497
IF mit AND und OR
vor 5 Tagen von DeathAndPain 10 / 32054

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.