PDA

Vollständige Version anzeigen : DESC bei Abfrage


DefJamz
16.10.2002, 13:43
Hallo Leutz,
hab mal wieder ein problem mit ner abfrage und zwar das ist die abfrage:
SELECT [Kundendaten].[KdNr],
[Kundendaten].[Name],
[Anrufhistorie].[Agent],
[Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
[Anrufhistorie].[abgearbeitet]
FROM Kundendaten
INNER JOIN Anrufhistorie
ON [Kundendaten].[KdNr]=[Anrufhistorie].[KdNr]
WHERE ((([Anrufhistorie].[Agent])=CurrentUser())
And (([Anrufhistorie].[Wiedervorlage])>=Date())
And (([Anrufhistorie].[abgearbeitet])=False)
And (([Kundendaten].[inaktiv])=False))
ORDER BY [Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
[Anrufhistorie].[KdNr] DESC;

folgendes problem, in manchen feldern die ich absteigend sortiere kann vorkommen das in dem feld nichts steht, die datensätze stehen dann vor den feldern wo was drinsteht, wie kann ich das verhindern also ich will das er mit die datensätze wo was drinsteht zuerst anzeigt und dann die datensätze wo in den feldern nichts drinsteht, hat jemand ein tip wie ich das machen kann??
vielen dank und greetz defjamz

A.S.: SQL zwecks besserer Lesbarkeit editiert.

[ 23. Oktober 2002: Beitrag editiert von: A.S. ]</p>

Manuela Kulpa
17.10.2002, 10:48
<font face="Verdana" size="2">Hi DefJamz,

ist vielleicht eher was für's SQL-Forum :) ! Ich verschiebs mal dort hin!

slg</font>

md
17.10.2002, 12:00
Hallo!
Ich machs mit Sortierfeldern:

Ein Beispiel:

Tabelle namens "Tabelle"
Ein feld namens "Feld", Typ Text, leere Eingabe erlaubt.

Die leeren Felder sollen bei aufsteigender Sortierung ans Ende:

SELECT Tabelle.Feld1
FROM Tabelle
ORDER BY IIf([feld1] Is Null,"ZZZZZZZZZ",[feld1]);

Dementsprechend kannst Du Deine Abfrage leicht anpassen


MD

DefJamz
23.10.2002, 14:17
hi,

erstmal danke für die antwort, sorry das ich nicht früher gepostet habe, aber ich hatte was anderes wichtiges zu tun deswegen kam ich dazu noch nicht,
ich versteh die abfrage nicht so ganz, das ist ja meine vorherigere abfrage:

SELECT [Kundendaten].[KdNr],
[Kundendaten].[Name],
[Anrufhistorie].[Agent],
[Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
[Anrufhistorie].[abgearbeitet]
FROM Kundendaten
INNER JOIN Anrufhistorie
ON [Kundendaten].[KdNr]=[Anrufhistorie].[KdNr]
WHERE ((([Anrufhistorie].[Agent])=CurrentUser())
And (([Anrufhistorie].[Wiedervorlage])>=Date())
And (([Anrufhistorie].[abgearbeitet])=False)
And (([Kundendaten].[inaktiv])=False))
ORDER BY [Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
[Anrufhistorie].[KdNr] DESC;

wie baue ich denn jetzt das ganze da ein, dieses 'ZZZZZ' irritiert mich ziemlich, kannste mir das vielleicht nochmal genauer erklären bin noch nicht so der hellste in sachen sql,
vielen dank im voraus und gruß defjamz

A.S. Lange SQL-Strings bitte EDITIEREN, sonst kann man nix mehr lesen ;)

[ 23. Oktober 2002: Beitrag editiert von: A.S. ]</p>

A.S.
23.10.2002, 14:27
SELECT [Kundendaten].[KdNr],
[Kundendaten].[Name],
[Anrufhistorie].[Agent],
[Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
[Anrufhistorie].[abgearbeitet]
FROM Kundendaten
INNER JOIN Anrufhistorie
ON [Kundendaten].[KdNr]=[Anrufhistorie].[KdNr]
WHERE ((([Anrufhistorie].[Agent])=CurrentUser())
And (([Anrufhistorie].[Wiedervorlage])>=Date())
And (([Anrufhistorie].[abgearbeitet])=False)
And (([Kundendaten].[inaktiv])=False))
ORDER BY [Anrufhistorie].[Wiedervorlage],
[Anrufhistorie].[Wiedervorlagezeit],
Iif(IsNull([Anrufhistorie].[KdNr])
,999999999999
,[Anrufhistorie].[KdNr]) DESC;

Dieses SQL-Coding dürfte dem Tip von MD entsprechend, sofern es sich bei KdNr um ein numerisches Feld handelt.

BTW: Ich habe die Anzahl der 9er-stellen in meiner Angabe nicht geprüft. Wenn es einen Überlauf gibt, ein paar neunen wegnehmen ;)

DefJamz
23.10.2002, 14:35
hi as,

erstmal danke für die schnelle antwort, aber das klappt immer noch nicht, die datensätze mit leeren felder stehen immer noch ganz oben hier ist jetzt der code mit deinem vorschlag ist da vielleicht noch was falsch dran??
SQL wegen Sturheit gekippt ;)

danke für deine hilfe

AS: ein bischen Formatieren und man kann alles lesen :(

[ 23. Oktober 2002: Beitrag editiert von: A.S. ]</p>

DefJamz
23.10.2002, 14:39
hey es klappt doch hatte ein kleinen fehler noch in der abfrage, vielen dank