Hallo,
ich habe ein Problem mit einer SQL Abfrage nachdem mit meiner Anwendung von Access zum SQL Server gewechselt habe.
Die Ausgabe der Abfrage soll sortiert sein aber das Feld nach dem sortiert wird ist ein Textfeld mit nummern.
z.B. E10-3-2-4
oder E1-3-2-4
deshalb haut das nicht so einfach hin weil die 10 dann vor 1 steht.
Da es als text erkannt wird wird es auch so sortiert. Ich habe mir mit iif() und Instr() auf das "-" gefiltert und dann die sortierung beinflusst. Das hat auch super geklappt aber leider nur bei Access, beim Server geht das nicht mehr weil der Instr() und iif() nicht kennt.
Das hier http://msdn.microsoft.com/de-de/library/ms181765.aspx
habe dazu im MSDN gefunden wo der "Fehler" beschrieben wird aber ich bekomme das einfach nicht zum laufen.
Ich bin auch nicht so fit was SQL angeht.
Vielleicht könnte hier mal jemand einen Blick auf die Abfrage werfen und mir sagen was ich machen muss um es zum laufen zu bekommen.
So lief es unter Access:
So habe ich es fersucht:
Irgendwie muss das mit Case When Else End gemacht werden, aber wie?
mfg
Jabberwock
ich habe ein Problem mit einer SQL Abfrage nachdem mit meiner Anwendung von Access zum SQL Server gewechselt habe.
Die Ausgabe der Abfrage soll sortiert sein aber das Feld nach dem sortiert wird ist ein Textfeld mit nummern.
z.B. E10-3-2-4
oder E1-3-2-4
deshalb haut das nicht so einfach hin weil die 10 dann vor 1 steht.
Da es als text erkannt wird wird es auch so sortiert. Ich habe mir mit iif() und Instr() auf das "-" gefiltert und dann die sortierung beinflusst. Das hat auch super geklappt aber leider nur bei Access, beim Server geht das nicht mehr weil der Instr() und iif() nicht kennt.
Das hier http://msdn.microsoft.com/de-de/library/ms181765.aspx
habe dazu im MSDN gefunden wo der "Fehler" beschrieben wird aber ich bekomme das einfach nicht zum laufen.
Ich bin auch nicht so fit was SQL angeht.
Vielleicht könnte hier mal jemand einen Blick auf die Abfrage werfen und mir sagen was ich machen muss um es zum laufen zu bekommen.
So lief es unter Access:
Code:
qdef = "SELECT * FROM Bauteil WHERE KAnr ='" & KA & "' AND Tower = 0 AND NOT LagerOrt ='Fertigung'" & _ "ORDER BY Maschine ASC, iif(instr(lagerort,'-')>3,'zzzzz','000') ASC, right(lagerort,len(lagerort)-1) ASC, ArtNr ASC"
So habe ich es fersucht:
Code:
qdef = "SELECT * FROM Bauteil WHERE KAnr ='" & KA & "' AND Tower = 0 AND NOT LagerOrt ='Fertigung'" & _ "ORDER BY Maschine ASC,CASE lagerort WHEN CHARINDEX(lagerort,'-')>3 THEN 'zzzzz' Else '000' END ASC, right(lagerort,len(lagerort)-1) ASC, ArtNr ASC"
mfg
Jabberwock
Comment