AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL sortierung / "eigne Definition"
Thema durchsuchen
Ansicht
Themen-Optionen

SQL sortierung / "eigne Definition"

Ein Thema von manfred_h · begonnen am 24. Mär 2009 · letzter Beitrag vom 25. Mär 2009
Antwort Antwort
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 11:03
Datenbank: Firbird • Version: 2.1 • Zugriff über: Fibplus 6.50
Hallo zusammen

ist es möglich eine eigne Sortierreinfolge zu verwenden?

In der DB sind folgende Werte:
CH
P
VP
S
T

Diese sollten nach folgendem kriterium sortiert werden.
P
VP
S
T
CH

bin für Tipps dankbar.
Manfred
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 11:16
Dafür müsstest du eine eigene Collation anlegen
Markus Kinzler
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 11:20
Danke für Deine schnelle Antwort mkinzler.

Werde versuchen dies in dem Fall im Report "auszuwerten" anstelle in der Dataset.

Shalom
Manfred
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 16:52
zur Info

konnte es so Lösen:
SQL-Code:
SELECT
ID,
C_NO,

(CASE
   WHEN CABINET_G = 'P'
   THEN 1 ELSE 0 END ) CABINET_G_P,
(CASE
   WHEN CABINET_G = 'VP'
   THEN '2ELSE 0 END ) CABINET_G_VP,
(CASE
   WHEN CABINET_G = 'S'
   THEN '3ELSE 0 END ) CABINET_G_SEK,
(CASE
   WHEN CABINET_G = 'T'
   THEN '4ELSE 0 END ) CABINET_G_T,
(CASE
   WHEN CABINET_G = 'CH'
   THEN '5ELSE 0 END ) CABINET_G_CH
FROM MEMBER

WHERE
   ((MEMBER.CABINET_G IS NOT NULL )
   AND
      (C_NO = ?C_NO)
   )
ORDER BY CABINET_G_P DESC, CABINET_G_VP DESC, CABINET_G_SEK DESC, CABINET_G_T DESC, CABINET_G_CH DESC
Shalom
Manfred
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 16:58
Ich würde aber eher eine neue Tabelle als Lookupliste erstellen. Ist flexibler und m.E. übersichtlicher als diese großen case-Anweisungen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: SQL sortierung / "eigne Definition"

  Alt 24. Mär 2009, 17:22
Hallo Bernhard

Zitat von Bernhard Geyer:
Ich würde aber eher eine neue Tabelle als Lookupliste erstellen. Ist flexibler und m.E. übersichtlicher als diese großen case-Anweisungen.
Danke für Deinen Hinweis. Die Daten benötige ich nur in 2 Reports ansonsten nicht ( in dieser Form ).
Deshalb denke ich es sollte ok sein.

Werde mich aber mit dem Thema ein wenig mehr befassen >> Tabelle als Lookuplist

Danke Dir aber für Deine Hilfe !

Shalom
Manfred
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: SQL sortierung / "eigne Definition"

  Alt 25. Mär 2009, 00:26
Was spricht gegen einen CASE-Verteiler?

SQL-Code:
SELECT ID, C_NO,
       CASE CABINET_G
         WHEN 'P'  THEN 1
         WHEN 'VPTHEN 2
         WHEN 'S'  THEN 3
         WHEN 'T'  THEN 4
         WHEN 'CHTHEN 5
       END sort
FROM member
WHERE CABINET_G IS NOT NULL
  AND C_NO = ?C_NO
ORDER BY sort
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#8

Re: SQL sortierung / "eigne Definition"

  Alt 25. Mär 2009, 09:25
Zitat von omata:
Was spricht gegen einen CASE-Verteiler?

SQL-Code:
SELECT ID, C_NO,
       CASE CABINET_G
         WHEN 'P'  THEN 1
         WHEN 'VPTHEN 2
         WHEN 'S'  THEN 3
         WHEN 'T'  THEN 4
         WHEN 'CHTHEN 5
       END sort
FROM member
WHERE CABINET_G IS NOT NULL
  AND C_NO = ?C_NO
ORDER BY sort
Das sieht wirklich besser aus. Danke für Deinen Tipp.
Werde dies gleich Testen.

Shalom
Manfred
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: SQL sortierung / "eigne Definition"

  Alt 25. Mär 2009, 10:03
Hallo,

wie wäre es denn mit einer Erweiterung der Tabelle?
Code:
In der DB sind folgende Werte:
CH
P
VP
S
T

Diese sollten nach folgendem Kriterium sortiert werden.
P
VP
S
T
CH
Code:
CABINET_G, Reihenfolge
CH , 5
P , 1
VP , 2 
S , 3
T , 4
Dann sollte doch ein
SQL-Code:
SELECT ID, C_NO, CABINET_G
FROM member
WHERE CABINET_G IS NOT NULL
  AND C_NO = ?C_NO
ORDER BY Reihenfolge
ausreichen und beim Einfügen neuer Werte in die Tabelle ist keine Anpassung an Programmen oder Reports ... erforderlich.
  Mit Zitat antworten Zitat
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#10

Re: SQL sortierung / "eigne Definition"

  Alt 25. Mär 2009, 12:06
Zitat von nahpets:
Hallo,
wie wäre es denn mit einer Erweiterung der Tabelle?
Die DB exisitiert schon und ist auf vielen Rechnern instaliert.
Änderungen an der DB möchte ich nur wenn unbedingt nötig durchführen.
Zitat:
keine Anpassung an Programmen oder Reports ... erforderlich.
Den Report bin ich am neu erstellen weswegen das ok währe.

Bei einer noch nicht exisiterenden DB finde ich Deine Lösung gut.
Danke für Deine Hilfe.

Shalom
Manfred
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 Uhr.
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