SQL Abfrage ORDER BY

  • VB6

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    SQL Abfrage ORDER BY

    Hallo,

    ich habe ein Problem mit einer schlecht aufgebauten .mdb

    und zwar stehen in einer spalte Strings zb. 1.1 , 1.5 , 1.15 , 3.5 , 6.10 , 6.2 , 6.13 , 1.2

    jetzt möchte ich das ganze gerne sortieren mit order by DESC nur das Problem an der geschichte ist, dass 1.15 vor 1.2 kommt was aber in diesem Falle nicht richtig ist ich hätte gerne

    1.1
    1.2
    1.5
    1.15
    3.5
    6.10
    6.13

    gibts da irgendeine möglichkeit ?

    Gruß
    hmm danke für den hinweis aber ich bekomms nicht hin ... kommt immer Unbekannter Fehler ^^ tolle aussage ..

    hier mein erster ansatz

    SQL-Abfrage

    1. SELECT Boxnummer, Datum, Fahrzeug, Fahrzeugnummer,
    2. Verzeichnis, Werkerinformation, Verzeichnis, geprüft,
    3. `Schrank-Steckplatz`
    4. FROM Steckerleisten
    5. WHERE (`Schrank-Steckplatz` NOT LIKE '') AND
    6. (Fahrzeugnummer LIKE '...') AND
    7. (Fahrzeug LIKE 'Schrank')
    8. ORDER BY SUBSTRING(`Schrank-Steckplatz`, 1, 1)


    sollte doch eigentlich in der spalte `Schrank_Steckplatz` nach dem ersten Char sortieren oder ?

    2. ansatz

    SQL-Abfrage

    1. SELECT Boxnummer, Datum, Fahrzeug, Fahrzeugnummer,
    2. Verzeichnis, Werkerinformation, Verzeichnis, geprüft,
    3. `Schrank-Steckplatz`, SUBSTRING(`Schrank-Steckplatz`, 2, 1)
    4. AS test
    5. FROM Steckerleisten
    6. WHERE (`Schrank-Steckplatz` NOT LIKE '') AND
    7. (Fahrzeugnummer LIKE '...') AND
    8. (Fahrzeug LIKE 'Schrank')
    9. ORDER BY test


    kommt der gleiche fehler ...
    Welche DB verwendest du denn?
    Vielleicht kann deine Version das SUBSTRING nicht.
    Geht diese Konstruktion

    SQL-Abfrage

    1. SELECT SUBSTRING(`Schrank-Steckplatz`, 1, 1) as Schrank FROM Steckerleisten


    Wenn dir die Struktur der Datenbank nicht gefällt, kannst du das Übel auch an der Wurzel anpacken:
    Ich würde mir eine View generieren, bei dem ich das Feld Schrank-Steckplatz splitte in zwei Spalten, damit ich es als Einzelfeld ansprechen kann.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    moin,

    also

    SQL-Abfrage

    1. SELECT SUBSTRING(`Schrank-Steckplatz`, 1, 1) as Schrank FROM Steckerleisten


    endet im gleiche Fehler "Unbekannter Fehler"

    es ist eine Microsoft Jet 4.0 OLE DB

    das ummodeln wäre eine idee ... das Problem dabei ist aber dass ein etwas größeres Programm dahiner hängt welches leider mit dem bestehenden arbeitet. Es wäre ein riesen aufwand das zu ändern.

    könnte mir nur vorstellen noch zwei spalten zusätzlich zu machen und diese dann immer bei bedarf vorher aktualisieren und dann auszuwerten ... wäre allerdings etwas viel gemurxe ...

    EDIT:

    was ich vergessen habe ... die Spalte ist als "adWChar" definiert ... sollte ja eig passen oder ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „_PASCAL_“ ()

    ja also meine anderen abfragen funktionieren mit ``

    der DataEnvironment Designer wandelt auch [] in `` um ... ich denke er versteht beides ..

    die `` hab ich auch nur setzen müssen weil ein "-" im spalten Namen vorhanden ist .. aber auch mit spalten ohne spezielle zeichen funktioniert SUBSTRING nicht

    ich habe auf einer Microsoft Seite alle Befehle gefunden welche die JET 4.0 unterstützt und SUBSTRING war auch dabei ... hmm
    hmm das VB6 is einfach kacke ... ich werd mal versuchen das ganze projekt in VB2008 zu importieren vll gehts dann besser ... hoffentlich schaff ich das überhaupt ^^ ...

    weil das problem mit den SendKeys im Background hab ich ja auch noch ... ich meld mich wenns weiter geht ...

    Gruß
    Das ist ja eine Sache der Datenbank.
    Wenn es eine Access Datenbank bleiben soll, wird auch in VB.NET die SQL Syntax nicht anders sein.
    In Access entspricht Mid, SUBSTRING.

    Ich habe es gerade mal getestet und es funktioniert.

    Gruss Mono
    Das ist meine Signatur und sie wird wunderbar sein!