Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ausgaben sortieren nach (https://www.delphipraxis.net/35283-ausgaben-sortieren-nach.html)

steppo 4. Dez 2004 19:31


Ausgaben sortieren nach
 
Hi Leute,
habe eine MySQL-Datenbank bei einem Provider in gebrauch.

Dort werden meinerseits Kundendaten gespeichert. Nun möchte ich die Daten nach der Auftragsnummer sortieren lassen.

Ich verwenden folgende Abfrage:
SQL-Code:
select * from Tabelle where auftragsnummer like'/864/%';
Die Auftragsnummer sieht so aus 'nummer(phpDatum(nicht formatiert))/feste Zahl/AuftragNr'.

Das ganze wird als string in die Datenbank übergeben.

Die Abfrage wird ohne Fehlermeldung ausgeführt, jedoch erhalte ich kein Ergebnis!

Ich verstehe meine Abfrage so.

Zeige mir alle Spalten von Tabelle wo die Auftragsnummer ähnlich 'Backslash 864 Backslash egal'; ist.

Wo ist mein Denkfehler?

Pr0g 4. Dez 2004 19:46

Re: Ausgaben sortieren nach
 
Die Abfrage sollte wohl so aussehen:
SQL-Code:
SELECT * FROM Tabelle WHERE auftragsnummer LIKE '%/864'
Denn sonst suchst du nur nach Nummern, die mit "/864" beginnen und einen beliebigen Text am Ende haben, so wie ich es verstanden habe, steht jedoch davor noch ein beliebiger Text.

Um die Ausgabe zu Sortieren, einfach "ORDER BY" hinten anhängen, bspw. so (weiß ja nicht wonach):
SQL-Code:
SELECT * FROM Tabelle WHERE auftragsnummer LIKE '%/864' ORDER BY id;
MfG Pr0g

steppo 5. Dez 2004 22:26

Re: Ausgaben sortieren nach
 
Hallo Pr0g

danke erst einmal für deine Antwort.

Die Auftragsnummer sieht so aus 'Nummer(phpDatum(nicht formatiert))/feste Zahl/AuftragNr'.

Ich suche nach der Auftragsnummre wobei der erste Teil bis zum ersten Slash, sowie der zweite Teil bis zum zweiten Slash (welcher eine feste Zahl ist) mir egal sind.
Wichtig ist mir der dritte Teil, also nach dem zweiten Slash('AuftragNr').

Dies möchte ich sortiert in aufsteigender Reihenfolge ausgegeben haben.

alcaeus 5. Dez 2004 22:34

Re: Ausgaben sortieren nach
 
Hi steppo,

nachdem dir die ersten Teile egal sind, muss das Statement wie bereits erwähnt
SQL-Code:
SELECT * FROM Tabelle WHERE auftragsnummer LIKE '%/864'
lauten.

Wenn nun nach der Auftragsnummer sortiert werden soll, dann lautet das Statement so:
SQL-Code:
SELECT * FROM Tabelle WHERE auftragsnummer LIKE '%/864' ORDER BY auftragsnummer ASC
Falls absteigend sortiert werden soll, musst du statt ASC einfach DESC verwenden.
Ich hoffe ich habe dich richtig verstanden.. :-?

Greetz
alcaeus

steppo 5. Dez 2004 22:44

Re: Ausgaben sortieren nach
 
Ich habe es mit ORDER BY, sowie ohne ORDER BY versucht. Beides löst keinen Fehler aus, bringt jedoch auch kein Ergebnis.

Ich möchte nach dem letzten drittel sortieren lassen, also nach AuftragNr. Der rest des strings soll nicht beachtet werden.

Daher meine Frage:
Wo liegt mein Fehler?

kiar 5. Dez 2004 22:55

Re: Ausgaben sortieren nach
 
hallo steppo,

baust du den sqlstring zur laufzeit zusammen, dann solltest du uns mal den quellcode zeigen, wie du das machst.


raik

edit:ich brauche einen neuen rechner, oder besser tastatur :mrgreen:

steppo 5. Dez 2004 23:31

Re: Ausgaben sortieren nach
 
Ich greife über phpMyAdmin 2.2.3

auf die Datenbank im Web zu und will lediglich die oben genannte Abfrage angezeigt bekommen.

steirer 6. Dez 2004 07:49

Re: Ausgaben sortieren nach
 
Hallo steppo, wenn ich dich richtig verstanden habe, ist der fixe Teil in der Mitte, der gesuchte Wert am Ende.

ich würde das so abfragen:

SQL-Code:
select * from Tabelle where auftragsnummer like'%/864/%';

steppo 6. Dez 2004 22:51

Re: Ausgaben sortieren nach
 
o.K. Leute, habe mich wohl nicht richtig ausgedrückt!

Der erste Teil variriert, ist für mich jedoch nicht relevant, also egal.
Der zweite Teil ist fix, immer 864.
Der dritte Teil ist jener der für mich interessant ist und der auch aufsteigend sortiert werden soll.

Das heißt Ihr habt alle mit euren Antworten recht. Die Abfrage sollte so aussehen:

SQL-Code:
select * from Tabelle where auftragsnummer like'%/864/';
ALso wie oben beschrieben:
Bis zum ersten Slash egal (%),
zweiter Teil = Fix(864)
dritter Teil =gesuchter Teil(AuftragsNr).

Das Problem ist, dass diese Abfrage ausgeführt wird (keine Fehlermeldung von Sql) jedoch kein Ergebnis ausgegeben wird!

jim_raynor 7. Dez 2004 06:18

Re: Ausgaben sortieren nach
 
Normalerweise kannst du mit Order By sortieren. Allerdings hast du hier das Problem, dass du in einem Tabellenfeld mehrere Informationen abgespeichert hast. Dies entspricht einem Schlechten Datenbankdesign. Wenn man es richtig machen möchte, müsstest du für jede Information eine eigene Spalte machen (also auch eine wo die Auftragsnr alleine steht).



SQL-Code:
select * from Tabelle where auftragsnummer like'%/864/'
Da fehlt doch noch die Auftragsnummer.

Richtig wäre vermutlich irgendwas wie:

SQL-Code:
select * from Tabelle where auftragsnummer like '%/864/'+gesuchteAuftragsNr


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 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