![]() |
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. |
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. |
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. |
AW: Tabelle nach Quartal sortieren
Hallo,
danke für die Tipps. Ich lass dass dann einfach so. |
AW: Tabelle nach Quartal sortieren
Zitat:
Aber im Ernst, hast Du es mal mit einem view versucht? Q1 JJJJQ Gruß K-H |
AW: Tabelle nach Quartal sortieren
Hallo,
was bringt mir ein View? Das Quartal ist gut lesbar als Mensch, das ist auch gut beim Debuggen. |
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.
|
AW: Tabelle nach Quartal sortieren
Zitat:
Bau Dir einen view mit dem zusätzlichen Feld Q1 und dasfüllst Du mit den beiden Substrings. Gruß K-H |
AW: Tabelle nach Quartal sortieren
SQL-Code:
oder
order by substring(quartal from 2 for 5)||substring(quartal from 1 for 1)
SQL-Code:
sollten reichen.
order by substring(quartal from 2 for 5), substring(quartal from 1 for 1)
Oder halt eventuell auch so:
SQL-Code:
order by reverse(quartal)
|
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 11:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz