Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Tabelle nach Quartal sortieren (https://www.delphipraxis.net/202391-tabelle-nach-quartal-sortieren.html)

hoika 29. Okt 2019 16:08

Datenbank: FB • Version: 3 • Zugriff über: IBAC

Tabelle nach Quartal sortieren
 
Hallo,
ich habe hier eine Tabelle mit einem Feld Quartal (Char5).
Das Quartal wird gespeichert als QJJJJ,
also 42019 für Q4 2019.
Ich greife nur lesend zu, und habe keinen Einfluss auf die Datenstruktur.

Ich will die Einträge jetzt aufsteigend sortieren.

Order By Quartal geht nicht, weil sonst 32018 vor 42017 einsortiert wird.

was geht wäre
order by cast(substring(quartal from 2 for 5) as integer),cast(substring(quartal from 1 for 1) as integer)

Gibt es da etwas anderes, einfacheres?

Mein aktuelles würde mir schon reichen, es sind Dank zusätzlicher where-Bedingungen nur wenige Datensätze.

jobo 29. Okt 2019 16:18

AW: Tabelle nach Quartal sortieren
 
M.E. geht es nicht anders. Das Casting zerstört ggF vorhande Nutzbarkeit von Indizes. Aber wenn Du genug andere, brauchbare Filterkriterien hast, fällt das vielleicht nicht ins Gewicht.

Was mir spontan noch einfällt, wäre ein Sort über einen Cast/Convert zu Date, der genau die von Dir angegebene Formatmaske nutzt. Das wäre aber bestenfalls übersichtlicher / eleganter im Anblick.

RSF 29. Okt 2019 18:11

AW: Tabelle nach Quartal sortieren
 
Einfacher vielleicht nicht aber nur so eine Idee.
Das Feld Quartal in zwei Felder einer temporären Tabelle aufschlüsseln und diese dann sortieren.

hoika 29. Okt 2019 18:39

AW: Tabelle nach Quartal sortieren
 
Hallo,
danke für die Tipps.
Ich lass dass dann einfach so.

p80286 29. Okt 2019 23:19

AW: Tabelle nach Quartal sortieren
 
Zitat:

Zitat von hoika (Beitrag 1450439)
Hallo,
ich habe hier eine Tabelle mit einem Feld Quartal (Char5).
Das Quartal wird gespeichert als QJJJJ,
also 42019 für Q4 2019.
Ich greife nur lesend zu, und habe keinen Einfluss auf die Datenstruktur.

Immer wieder toll gut durchdachte Tabellendesigns zu sehen.

Aber im Ernst, hast Du es mal mit einem view versucht? Q1 JJJJQ

Gruß
K-H

hoika 30. Okt 2019 04:35

AW: Tabelle nach Quartal sortieren
 
Hallo,
was bringt mir ein View?

Das Quartal ist gut lesbar als Mensch,
das ist auch gut beim Debuggen.

Jumpy 30. Okt 2019 07:30

AW: Tabelle nach Quartal sortieren
 
Kann man sich den Cast auf integer jeweils nicht sparen? Wenn man die Zahlen als String sortiert müsste in dem Fall doch das Gleiche rauskommen.

p80286 30. Okt 2019 08:57

AW: Tabelle nach Quartal sortieren
 
Zitat:

Zitat von hoika (Beitrag 1450465)
Hallo,
was bringt mir ein View?

Das Quartal ist gut lesbar als Mensch,
das ist auch gut beim Debuggen.

und beim Sortieren?
Bau Dir einen view mit dem zusätzlichen Feld Q1 und dasfüllst Du mit den beiden Substrings.

Gruß
K-H

Delphi.Narium 30. Okt 2019 10:16

AW: Tabelle nach Quartal sortieren
 
SQL-Code:
order by substring(quartal from 2 for 5)||substring(quartal from 1 for 1)
oder
SQL-Code:
order by substring(quartal from 2 for 5), substring(quartal from 1 for 1)
sollten reichen.

Oder halt eventuell auch so:
SQL-Code:
order by reverse(quartal)

hoika 30. Okt 2019 10:38

AW: Tabelle nach Quartal sortieren
 
Hallo,
danke, der letzte Eintrag passt auch ;)
Klar reicht der SubString-Vergleich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz