Eine etwas kompliziertere Abfrage... (jedenfalls für mich!)

27/04/2009 - 13:47 von Franz | Report spam
Hallo Freunde

Muss wal wieder den "Klub" hier in Anspruch nehmen, vielen Dank im
voraus!

Das Problem: Ich habe eine Datenbank mit Verkàufern von Abzeichen und
will wöchentlich den besten ermitteln. Bei Resultatgleichheit
entscheidet das frühere Datum an welchem der Betreffende die Resultate
abgeliefert hat. Die Tabelle (vereinfacht!) hat also folgende
Struktur:

ListID = SammellistenNummer, wie eine Auftragsnummer, indexiert, keine
Duplikate
Qty = Anzahl der Spenden/r (nicht Höhe!)
LiefDat = AblieferungsDatum
VolNr = Nummer des Verkàufers

Die Wochennummer emittle ich in der Abfrage mit
WeekNr: CStr(DatePart("ww";[LiefDat];2;1) & "/" & DatePart("yyyy";
[LiefDat];2;1))

... aber wie weiter. Ich denke dass es sicher elegantere Wege gibt,
als mit mehreren Unterabfragen zu arbeiten.

Kann mir jemand helfen?

Dank + Gruss aus Prag

Franz

-
 

Lesen sie die antworten

#1 Peter Doering
27/04/2009 - 15:44 | Warnen spam
Hallo,

Franz wrote:

Das Problem: Ich habe eine Datenbank mit Verkàufern von Abzeichen und
will wöchentlich den besten ermitteln. Bei Resultatgleichheit
entscheidet das frühere Datum an welchem der Betreffende die Resultate
abgeliefert hat. Die Tabelle (vereinfacht!) hat also folgende
Struktur:

ListID = SammellistenNummer, wie eine Auftragsnummer, indexiert, keine
Duplikate
Qty = Anzahl der Spenden/r (nicht Höhe!)
LiefDat = AblieferungsDatum
VolNr = Nummer des Verkàufers

Die Wochennummer emittle ich in der Abfrage mit
WeekNr: CStr(DatePart("ww";[LiefDat];2;1) & "/" & DatePart("yyyy";
[LiefDat];2;1))

... aber wie weiter. Ich denke dass es sicher elegantere Wege gibt,
als mit mehreren Unterabfragen zu arbeiten.



Willst du woechentlich den Besten ermitteln, oder den jeweils Wochenbesten
ueber einen laengeren Zeitraum, soll die Abfrage also einen oder mehrere DS
liefern?

Wenn du nur einen Besten sehen willst, geht das recht einfach:

SELECT TOP 1 VolNr
FROM Tab1
WHERE LiefDat Between #4/20/2009# And #4/24/2009#
ORDER BY Qty DESC, LiefDat

Wenn du eine Liste haben willst, sehe ich keine Moeglichkeit ohne Subquery.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
3. SEK Sa/So 16./17.5.2009, Nürnberg http://www.donkarl.com/SEK/

Ähnliche fragen